nativescript-plugin-firebase-updated
Advanced tools
Comparing version 2110.4.0 to 2210.4.0
@@ -1,5 +0,2 @@ | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.rewardedVideoCallbacks = exports.BANNER_DEFAULTS = exports.AD_SIZE = void 0; | ||
exports.AD_SIZE = { | ||
export const AD_SIZE = { | ||
SMART_BANNER: "SMART", | ||
@@ -14,3 +11,3 @@ LARGE_BANNER: "LARGE", | ||
}; | ||
exports.BANNER_DEFAULTS = { | ||
export const BANNER_DEFAULTS = { | ||
margins: { | ||
@@ -24,17 +21,17 @@ top: -1, | ||
}; | ||
exports.rewardedVideoCallbacks = { | ||
onRewarded: function (reward) { return console.warn("onRewarded callback not set - the fallback implementation caught this reward: " + JSON.stringify(reward)); }, | ||
onLeftApplication: function () { | ||
export const rewardedVideoCallbacks = { | ||
onRewarded: (reward) => console.warn("onRewarded callback not set - the fallback implementation caught this reward: " + JSON.stringify(reward)), | ||
onLeftApplication: () => { | ||
}, | ||
onClosed: function () { | ||
onClosed: () => { | ||
}, | ||
onOpened: function () { | ||
onOpened: () => { | ||
}, | ||
onStarted: function () { | ||
onStarted: () => { | ||
}, | ||
onCompleted: function () { | ||
onCompleted: () => { | ||
}, | ||
onLoaded: function () { | ||
onLoaded: () => { | ||
}, | ||
onFailedToLoad: function (err) { return console.warn("onFailedToLoad not set - the fallback implementation caught this error: " + err); }, | ||
onFailedToLoad: (err) => console.warn("onFailedToLoad not set - the fallback implementation caught this error: " + err), | ||
}; |
@@ -1,39 +0,35 @@ | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.hideBanner = exports.showRewardedVideoAd = exports.preloadRewardedVideoAd = exports.showInterstitial = exports.preloadInterstitial = exports.showBanner = exports.AD_SIZE = void 0; | ||
var firebase_common_1 = require("../firebase-common"); | ||
var admob_common_1 = require("./admob-common"); | ||
Object.defineProperty(exports, "AD_SIZE", { enumerable: true, get: function () { return admob_common_1.AD_SIZE; } }); | ||
var appModule = require("@nativescript/core/application"); | ||
var frame_1 = require("@nativescript/core/ui/frame"); | ||
var utils_1 = require("@nativescript/core/utils/utils"); | ||
function showBanner(arg) { | ||
var _this = this; | ||
return new Promise(function (resolve, reject) { | ||
import { firebase } from "../firebase-common"; | ||
import { AD_SIZE, BANNER_DEFAULTS, rewardedVideoCallbacks } from "./admob-common"; | ||
import * as appModule from "@nativescript/core/application"; | ||
import { topmost } from "@nativescript/core/ui/frame"; | ||
import { layout } from "@nativescript/core/utils/utils"; | ||
export { AD_SIZE }; | ||
export function showBanner(arg) { | ||
return new Promise((resolve, reject) => { | ||
try { | ||
var settings = firebase_common_1.firebase.merge(arg, admob_common_1.BANNER_DEFAULTS); | ||
if (firebase_common_1.firebase.admob.adView !== null && firebase_common_1.firebase.admob.adView !== undefined) { | ||
var parent_1 = firebase_common_1.firebase.admob.adView.getParent(); | ||
if (parent_1 !== null) { | ||
parent_1.removeView(firebase_common_1.firebase.admob.adView); | ||
const settings = firebase.merge(arg, BANNER_DEFAULTS); | ||
if (firebase.admob.adView !== null && firebase.admob.adView !== undefined) { | ||
const parent = firebase.admob.adView.getParent(); | ||
if (parent !== null) { | ||
parent.removeView(firebase.admob.adView); | ||
} | ||
} | ||
firebase_common_1.firebase.admob.adView = new com.google.android.gms.ads.AdView(appModule.android.foregroundActivity); | ||
firebase_common_1.firebase.admob.adView.setAdUnitId(settings.androidBannerId); | ||
var bannerType = _getBannerType(settings.size); | ||
firebase_common_1.firebase.admob.adView.setAdSize(bannerType); | ||
_this.resolve = resolve; | ||
_this.reject = reject; | ||
var BannerAdListener = com.google.android.gms.ads.AdListener.extend({ | ||
firebase.admob.adView = new com.google.android.gms.ads.AdView(appModule.android.foregroundActivity); | ||
firebase.admob.adView.setAdUnitId(settings.androidBannerId); | ||
const bannerType = _getBannerType(settings.size); | ||
firebase.admob.adView.setAdSize(bannerType); | ||
this.resolve = resolve; | ||
this.reject = reject; | ||
const BannerAdListener = com.google.android.gms.ads.AdListener.extend({ | ||
resolve: null, | ||
reject: null, | ||
onAdLoaded: function () { return _this.resolve(); }, | ||
onAdFailedToLoad: function (errorCode) { return _this.reject(errorCode); }, | ||
onAdClicked: function () { return arg.onClicked && arg.onClicked(); }, | ||
onAdOpened: function () { return arg.onOpened && arg.onOpened(); }, | ||
onAdLeftApplication: function () { return arg.onLeftApplication && arg.onLeftApplication(); }, | ||
onAdClosed: function () { | ||
if (firebase_common_1.firebase.admob.adView) { | ||
firebase_common_1.firebase.admob.adView.setAdListener(null); | ||
firebase_common_1.firebase.admob.adView = null; | ||
onAdLoaded: () => this.resolve(), | ||
onAdFailedToLoad: errorCode => this.reject(errorCode), | ||
onAdClicked: () => arg.onClicked && arg.onClicked(), | ||
onAdOpened: () => arg.onOpened && arg.onOpened(), | ||
onAdLeftApplication: () => arg.onLeftApplication && arg.onLeftApplication(), | ||
onAdClosed: () => { | ||
if (firebase.admob.adView) { | ||
firebase.admob.adView.setAdListener(null); | ||
firebase.admob.adView = null; | ||
} | ||
@@ -43,7 +39,7 @@ arg.onClosed && arg.onClosed(); | ||
}); | ||
firebase_common_1.firebase.admob.adView.setAdListener(new BannerAdListener()); | ||
var ad = _buildAdRequest(settings); | ||
firebase_common_1.firebase.admob.adView.loadAd(ad); | ||
var density = utils_1.layout.getDisplayDensity(), top_1 = settings.margins.top * density, bottom = settings.margins.bottom * density; | ||
var relativeLayoutParams = new android.widget.RelativeLayout.LayoutParams(android.widget.RelativeLayout.LayoutParams.MATCH_PARENT, android.widget.RelativeLayout.LayoutParams.WRAP_CONTENT); | ||
firebase.admob.adView.setAdListener(new BannerAdListener()); | ||
const ad = _buildAdRequest(settings); | ||
firebase.admob.adView.loadAd(ad); | ||
const density = layout.getDisplayDensity(), top = settings.margins.top * density, bottom = settings.margins.bottom * density; | ||
const relativeLayoutParams = new android.widget.RelativeLayout.LayoutParams(android.widget.RelativeLayout.LayoutParams.MATCH_PARENT, android.widget.RelativeLayout.LayoutParams.WRAP_CONTENT); | ||
if (bottom > -1) { | ||
@@ -54,17 +50,17 @@ relativeLayoutParams.bottomMargin = bottom; | ||
else { | ||
if (top_1 > -1) { | ||
relativeLayoutParams.topMargin = top_1; | ||
if (top > -1) { | ||
relativeLayoutParams.topMargin = top; | ||
} | ||
relativeLayoutParams.addRule(android.widget.RelativeLayout.ALIGN_PARENT_TOP); | ||
} | ||
var adViewLayout_1 = new android.widget.RelativeLayout(appModule.android.foregroundActivity); | ||
adViewLayout_1.addView(firebase_common_1.firebase.admob.adView, relativeLayoutParams); | ||
var relativeLayoutParamsOuter_1 = new android.widget.RelativeLayout.LayoutParams(android.widget.RelativeLayout.LayoutParams.MATCH_PARENT, android.widget.RelativeLayout.LayoutParams.MATCH_PARENT); | ||
setTimeout(function () { | ||
var top = frame_1.topmost(); | ||
const adViewLayout = new android.widget.RelativeLayout(appModule.android.foregroundActivity); | ||
adViewLayout.addView(firebase.admob.adView, relativeLayoutParams); | ||
const relativeLayoutParamsOuter = new android.widget.RelativeLayout.LayoutParams(android.widget.RelativeLayout.LayoutParams.MATCH_PARENT, android.widget.RelativeLayout.LayoutParams.MATCH_PARENT); | ||
setTimeout(() => { | ||
const top = topmost(); | ||
if (top !== undefined && top.currentPage && top.currentPage.android && top.currentPage.android.getParent()) { | ||
top.currentPage.android.getParent().addView(adViewLayout_1, relativeLayoutParamsOuter_1); | ||
top.currentPage.android.getParent().addView(adViewLayout, relativeLayoutParamsOuter); | ||
} | ||
else if (appModule.android && appModule.android.foregroundActivity) { | ||
appModule.android.foregroundActivity.getWindow().getDecorView().addView(adViewLayout_1, relativeLayoutParamsOuter_1); | ||
appModule.android.foregroundActivity.getWindow().getDecorView().addView(adViewLayout, relativeLayoutParamsOuter); | ||
} | ||
@@ -82,23 +78,21 @@ else { | ||
} | ||
exports.showBanner = showBanner; | ||
function preloadInterstitial(arg) { | ||
var _this = this; | ||
return new Promise(function (resolve, reject) { | ||
export function preloadInterstitial(arg) { | ||
return new Promise((resolve, reject) => { | ||
try { | ||
var settings = firebase_common_1.firebase.merge(arg, admob_common_1.BANNER_DEFAULTS); | ||
var activity = appModule.android.foregroundActivity || appModule.android.startActivity; | ||
firebase_common_1.firebase.admob.interstitialView = new com.google.android.gms.ads.InterstitialAd(activity); | ||
firebase_common_1.firebase.admob.interstitialView.setAdUnitId(settings.androidInterstitialId); | ||
_this.resolve = resolve; | ||
_this.reject = reject; | ||
var InterstitialAdListener = com.google.android.gms.ads.AdListener.extend({ | ||
onAdLoaded: function () { return _this.resolve(); }, | ||
onAdFailedToLoad: function (errorCode) { return _this.reject(errorCode); }, | ||
onAdClicked: function () { return arg.onClicked && arg.onClicked(); }, | ||
onAdOpened: function () { return arg.onOpened && arg.onOpened(); }, | ||
onAdLeftApplication: function () { return arg.onLeftApplication && arg.onLeftApplication(); }, | ||
onAdClosed: function () { | ||
if (firebase_common_1.firebase.admob.interstitialView) { | ||
firebase_common_1.firebase.admob.interstitialView.setAdListener(null); | ||
firebase_common_1.firebase.admob.interstitialView = null; | ||
const settings = firebase.merge(arg, BANNER_DEFAULTS); | ||
const activity = appModule.android.foregroundActivity || appModule.android.startActivity; | ||
firebase.admob.interstitialView = new com.google.android.gms.ads.InterstitialAd(activity); | ||
firebase.admob.interstitialView.setAdUnitId(settings.androidInterstitialId); | ||
this.resolve = resolve; | ||
this.reject = reject; | ||
const InterstitialAdListener = com.google.android.gms.ads.AdListener.extend({ | ||
onAdLoaded: () => this.resolve(), | ||
onAdFailedToLoad: errorCode => this.reject(errorCode), | ||
onAdClicked: () => arg.onClicked && arg.onClicked(), | ||
onAdOpened: () => arg.onOpened && arg.onOpened(), | ||
onAdLeftApplication: () => arg.onLeftApplication && arg.onLeftApplication(), | ||
onAdClosed: () => { | ||
if (firebase.admob.interstitialView) { | ||
firebase.admob.interstitialView.setAdListener(null); | ||
firebase.admob.interstitialView = null; | ||
} | ||
@@ -109,5 +103,5 @@ arg.onAdClosed && arg.onAdClosed(); | ||
}); | ||
firebase_common_1.firebase.admob.interstitialView.setAdListener(new InterstitialAdListener()); | ||
var ad = _buildAdRequest(settings); | ||
firebase_common_1.firebase.admob.interstitialView.loadAd(ad); | ||
firebase.admob.interstitialView.setAdListener(new InterstitialAdListener()); | ||
const ad = _buildAdRequest(settings); | ||
firebase.admob.interstitialView.loadAd(ad); | ||
} | ||
@@ -120,9 +114,8 @@ catch (ex) { | ||
} | ||
exports.preloadInterstitial = preloadInterstitial; | ||
function showInterstitial(arg) { | ||
return new Promise(function (resolve, reject) { | ||
export function showInterstitial(arg) { | ||
return new Promise((resolve, reject) => { | ||
try { | ||
if (!arg) { | ||
if (firebase_common_1.firebase.admob.interstitialView) { | ||
firebase_common_1.firebase.admob.interstitialView.show(); | ||
if (firebase.admob.interstitialView) { | ||
firebase.admob.interstitialView.show(); | ||
resolve(); | ||
@@ -135,21 +128,21 @@ } | ||
} | ||
var settings = firebase_common_1.firebase.merge(arg, admob_common_1.BANNER_DEFAULTS); | ||
var activity = appModule.android.foregroundActivity || appModule.android.startActivity; | ||
firebase_common_1.firebase.admob.interstitialView = new com.google.android.gms.ads.InterstitialAd(activity); | ||
firebase_common_1.firebase.admob.interstitialView.setAdUnitId(settings.androidInterstitialId); | ||
var InterstitialAdListener = com.google.android.gms.ads.AdListener.extend({ | ||
onAdLoaded: function () { | ||
if (firebase_common_1.firebase.admob.interstitialView) { | ||
firebase_common_1.firebase.admob.interstitialView.show(); | ||
const settings = firebase.merge(arg, BANNER_DEFAULTS); | ||
const activity = appModule.android.foregroundActivity || appModule.android.startActivity; | ||
firebase.admob.interstitialView = new com.google.android.gms.ads.InterstitialAd(activity); | ||
firebase.admob.interstitialView.setAdUnitId(settings.androidInterstitialId); | ||
const InterstitialAdListener = com.google.android.gms.ads.AdListener.extend({ | ||
onAdLoaded: () => { | ||
if (firebase.admob.interstitialView) { | ||
firebase.admob.interstitialView.show(); | ||
} | ||
resolve(); | ||
}, | ||
onAdFailedToLoad: function (errorCode) { return reject(errorCode); }, | ||
onAdClicked: function () { return arg.onClicked && arg.onClicked(); }, | ||
onAdOpened: function () { return arg.onOpened && arg.onOpened(); }, | ||
onAdLeftApplication: function () { return arg.onLeftApplication && arg.onLeftApplication(); }, | ||
onAdClosed: function () { | ||
if (firebase_common_1.firebase.admob.interstitialView) { | ||
firebase_common_1.firebase.admob.interstitialView.setAdListener(null); | ||
firebase_common_1.firebase.admob.interstitialView = null; | ||
onAdFailedToLoad: errorCode => reject(errorCode), | ||
onAdClicked: () => arg.onClicked && arg.onClicked(), | ||
onAdOpened: () => arg.onOpened && arg.onOpened(), | ||
onAdLeftApplication: () => arg.onLeftApplication && arg.onLeftApplication(), | ||
onAdClosed: () => { | ||
if (firebase.admob.interstitialView) { | ||
firebase.admob.interstitialView.setAdListener(null); | ||
firebase.admob.interstitialView = null; | ||
} | ||
@@ -160,5 +153,5 @@ arg.onAdClosed && arg.onAdClosed(); | ||
}); | ||
firebase_common_1.firebase.admob.interstitialView.setAdListener(new InterstitialAdListener()); | ||
var ad = _buildAdRequest(settings); | ||
firebase_common_1.firebase.admob.interstitialView.loadAd(ad); | ||
firebase.admob.interstitialView.setAdListener(new InterstitialAdListener()); | ||
const ad = _buildAdRequest(settings); | ||
firebase.admob.interstitialView.loadAd(ad); | ||
} | ||
@@ -171,14 +164,13 @@ catch (ex) { | ||
} | ||
exports.showInterstitial = showInterstitial; | ||
function preloadRewardedVideoAd(arg) { | ||
return new Promise(function (resolve, reject) { | ||
export function preloadRewardedVideoAd(arg) { | ||
return new Promise((resolve, reject) => { | ||
try { | ||
var settings = firebase_common_1.firebase.merge(arg, admob_common_1.BANNER_DEFAULTS); | ||
var activity = appModule.android.foregroundActivity || appModule.android.startActivity; | ||
firebase_common_1.firebase.admob.rewardedAdVideoView = com.google.android.gms.ads.MobileAds.getRewardedVideoAdInstance(activity); | ||
admob_common_1.rewardedVideoCallbacks.onLoaded = resolve; | ||
admob_common_1.rewardedVideoCallbacks.onFailedToLoad = reject; | ||
var RewardedVideoAdListener = com.google.android.gms.ads.reward.RewardedVideoAdListener.extend({ | ||
onRewarded: function (reward) { | ||
admob_common_1.rewardedVideoCallbacks.onRewarded({ | ||
const settings = firebase.merge(arg, BANNER_DEFAULTS); | ||
const activity = appModule.android.foregroundActivity || appModule.android.startActivity; | ||
firebase.admob.rewardedAdVideoView = com.google.android.gms.ads.MobileAds.getRewardedVideoAdInstance(activity); | ||
rewardedVideoCallbacks.onLoaded = resolve; | ||
rewardedVideoCallbacks.onFailedToLoad = reject; | ||
const RewardedVideoAdListener = com.google.android.gms.ads.reward.RewardedVideoAdListener.extend({ | ||
onRewarded(reward) { | ||
rewardedVideoCallbacks.onRewarded({ | ||
amount: reward.getAmount(), | ||
@@ -188,31 +180,31 @@ type: reward.getType() | ||
}, | ||
onRewardedVideoAdLeftApplication: function () { | ||
admob_common_1.rewardedVideoCallbacks.onLeftApplication(); | ||
onRewardedVideoAdLeftApplication() { | ||
rewardedVideoCallbacks.onLeftApplication(); | ||
}, | ||
onRewardedVideoAdClosed: function () { | ||
if (firebase_common_1.firebase.admob.rewardedAdVideoView) { | ||
firebase_common_1.firebase.admob.rewardedAdVideoView.setRewardedVideoAdListener(null); | ||
firebase_common_1.firebase.admob.rewardedAdVideoView = null; | ||
onRewardedVideoAdClosed() { | ||
if (firebase.admob.rewardedAdVideoView) { | ||
firebase.admob.rewardedAdVideoView.setRewardedVideoAdListener(null); | ||
firebase.admob.rewardedAdVideoView = null; | ||
} | ||
admob_common_1.rewardedVideoCallbacks.onClosed(); | ||
rewardedVideoCallbacks.onClosed(); | ||
}, | ||
onRewardedVideoAdFailedToLoad: function (errorCode) { | ||
admob_common_1.rewardedVideoCallbacks.onFailedToLoad(errorCode); | ||
onRewardedVideoAdFailedToLoad(errorCode) { | ||
rewardedVideoCallbacks.onFailedToLoad(errorCode); | ||
}, | ||
onRewardedVideoAdLoaded: function () { | ||
admob_common_1.rewardedVideoCallbacks.onLoaded(); | ||
onRewardedVideoAdLoaded() { | ||
rewardedVideoCallbacks.onLoaded(); | ||
}, | ||
onRewardedVideoAdOpened: function () { | ||
admob_common_1.rewardedVideoCallbacks.onOpened(); | ||
onRewardedVideoAdOpened() { | ||
rewardedVideoCallbacks.onOpened(); | ||
}, | ||
onRewardedVideoStarted: function () { | ||
admob_common_1.rewardedVideoCallbacks.onStarted(); | ||
onRewardedVideoStarted() { | ||
rewardedVideoCallbacks.onStarted(); | ||
}, | ||
onRewardedVideoCompleted: function () { | ||
admob_common_1.rewardedVideoCallbacks.onCompleted(); | ||
onRewardedVideoCompleted() { | ||
rewardedVideoCallbacks.onCompleted(); | ||
} | ||
}); | ||
firebase_common_1.firebase.admob.rewardedAdVideoView.setRewardedVideoAdListener(new RewardedVideoAdListener()); | ||
var ad = _buildAdRequest(settings); | ||
firebase_common_1.firebase.admob.rewardedAdVideoView.loadAd(settings.androidAdPlacementId, ad); | ||
firebase.admob.rewardedAdVideoView.setRewardedVideoAdListener(new RewardedVideoAdListener()); | ||
const ad = _buildAdRequest(settings); | ||
firebase.admob.rewardedAdVideoView.loadAd(settings.androidAdPlacementId, ad); | ||
} | ||
@@ -225,7 +217,6 @@ catch (ex) { | ||
} | ||
exports.preloadRewardedVideoAd = preloadRewardedVideoAd; | ||
function showRewardedVideoAd(arg) { | ||
return new Promise(function (resolve, reject) { | ||
export function showRewardedVideoAd(arg) { | ||
return new Promise((resolve, reject) => { | ||
try { | ||
if (!firebase_common_1.firebase.admob.rewardedAdVideoView) { | ||
if (!firebase.admob.rewardedAdVideoView) { | ||
reject("Please call 'preloadRewardedVideoAd' first"); | ||
@@ -235,20 +226,20 @@ return; | ||
if (arg.onRewarded) { | ||
admob_common_1.rewardedVideoCallbacks.onRewarded = arg.onRewarded; | ||
rewardedVideoCallbacks.onRewarded = arg.onRewarded; | ||
} | ||
if (arg.onLeftApplication) { | ||
admob_common_1.rewardedVideoCallbacks.onLeftApplication = arg.onLeftApplication; | ||
rewardedVideoCallbacks.onLeftApplication = arg.onLeftApplication; | ||
} | ||
if (arg.onClosed) { | ||
admob_common_1.rewardedVideoCallbacks.onClosed = arg.onClosed; | ||
rewardedVideoCallbacks.onClosed = arg.onClosed; | ||
} | ||
if (arg.onOpened) { | ||
admob_common_1.rewardedVideoCallbacks.onOpened = arg.onOpened; | ||
rewardedVideoCallbacks.onOpened = arg.onOpened; | ||
} | ||
if (arg.onStarted) { | ||
admob_common_1.rewardedVideoCallbacks.onStarted = arg.onStarted; | ||
rewardedVideoCallbacks.onStarted = arg.onStarted; | ||
} | ||
if (arg.onCompleted) { | ||
admob_common_1.rewardedVideoCallbacks.onCompleted = arg.onCompleted; | ||
rewardedVideoCallbacks.onCompleted = arg.onCompleted; | ||
} | ||
firebase_common_1.firebase.admob.rewardedAdVideoView.show(); | ||
firebase.admob.rewardedAdVideoView.show(); | ||
resolve(); | ||
@@ -262,12 +253,11 @@ } | ||
} | ||
exports.showRewardedVideoAd = showRewardedVideoAd; | ||
function hideBanner() { | ||
return new Promise(function (resolve, reject) { | ||
export function hideBanner() { | ||
return new Promise((resolve, reject) => { | ||
try { | ||
if (firebase_common_1.firebase.admob.adView !== null) { | ||
var parent_2 = firebase_common_1.firebase.admob.adView.getParent(); | ||
if (parent_2 !== null) { | ||
parent_2.removeView(firebase_common_1.firebase.admob.adView); | ||
if (firebase.admob.adView !== null) { | ||
const parent = firebase.admob.adView.getParent(); | ||
if (parent !== null) { | ||
parent.removeView(firebase.admob.adView); | ||
} | ||
firebase_common_1.firebase.admob.adView = null; | ||
firebase.admob.adView = null; | ||
} | ||
@@ -282,20 +272,19 @@ resolve(); | ||
} | ||
exports.hideBanner = hideBanner; | ||
function _getBannerType(size) { | ||
if (size === admob_common_1.AD_SIZE.BANNER) { | ||
if (size === AD_SIZE.BANNER) { | ||
return com.google.android.gms.ads.AdSize.BANNER; | ||
} | ||
else if (size === admob_common_1.AD_SIZE.LARGE_BANNER) { | ||
else if (size === AD_SIZE.LARGE_BANNER) { | ||
return com.google.android.gms.ads.AdSize.LARGE_BANNER; | ||
} | ||
else if (size === admob_common_1.AD_SIZE.MEDIUM_RECTANGLE) { | ||
else if (size === AD_SIZE.MEDIUM_RECTANGLE) { | ||
return com.google.android.gms.ads.AdSize.MEDIUM_RECTANGLE; | ||
} | ||
else if (size === admob_common_1.AD_SIZE.FULL_BANNER) { | ||
else if (size === AD_SIZE.FULL_BANNER) { | ||
return com.google.android.gms.ads.AdSize.FULL_BANNER; | ||
} | ||
else if (size === admob_common_1.AD_SIZE.LEADERBOARD) { | ||
else if (size === AD_SIZE.LEADERBOARD) { | ||
return com.google.android.gms.ads.AdSize.LEADERBOARD; | ||
} | ||
else if (size === admob_common_1.AD_SIZE.SMART_BANNER) { | ||
else if (size === AD_SIZE.SMART_BANNER) { | ||
return com.google.android.gms.ads.AdSize.SMART_BANNER; | ||
@@ -308,8 +297,8 @@ } | ||
function _buildAdRequest(settings) { | ||
var builder = new com.google.android.gms.ads.AdRequest.Builder(); | ||
const builder = new com.google.android.gms.ads.AdRequest.Builder(); | ||
if (settings.testing) { | ||
builder.addTestDevice(com.google.android.gms.ads.AdRequest.DEVICE_ID_EMULATOR); | ||
var activity = appModule.android.foregroundActivity || appModule.android.startActivity; | ||
var ANDROID_ID = android.provider.Settings.Secure.getString(activity.getContentResolver(), android.provider.Settings.Secure.ANDROID_ID); | ||
var deviceId = _md5(ANDROID_ID); | ||
const activity = appModule.android.foregroundActivity || appModule.android.startActivity; | ||
const ANDROID_ID = android.provider.Settings.Secure.getString(activity.getContentResolver(), android.provider.Settings.Secure.ANDROID_ID); | ||
let deviceId = _md5(ANDROID_ID); | ||
if (deviceId !== null) { | ||
@@ -322,9 +311,9 @@ deviceId = deviceId.toUpperCase(); | ||
if (settings.keywords !== undefined && settings.keywords.length > 0) { | ||
for (var i = 0; i < settings.keywords.length; i++) { | ||
for (let i = 0; i < settings.keywords.length; i++) { | ||
builder.addKeyword(settings.keywords[i]); | ||
} | ||
} | ||
var bundle = new android.os.Bundle(); | ||
const bundle = new android.os.Bundle(); | ||
bundle.putInt("nativescript", 1); | ||
var adextras = new com.google.android.gms.ads.mediation.admob.AdMobExtras(bundle); | ||
const adextras = new com.google.android.gms.ads.mediation.admob.AdMobExtras(bundle); | ||
return builder.build(); | ||
@@ -334,13 +323,13 @@ } | ||
try { | ||
var digest = java.security.MessageDigest.getInstance("MD5"); | ||
var bytes = []; | ||
for (var j = 0; j < input.length; ++j) { | ||
const digest = java.security.MessageDigest.getInstance("MD5"); | ||
const bytes = []; | ||
for (let j = 0; j < input.length; ++j) { | ||
bytes.push(input.charCodeAt(j)); | ||
} | ||
var s = new java.lang.String(input); | ||
const s = new java.lang.String(input); | ||
digest.update(s.getBytes()); | ||
var messageDigest = digest.digest(); | ||
var hexString = ""; | ||
for (var i = 0; i < messageDigest.length; i++) { | ||
var h = java.lang.Integer.toHexString(0xFF & messageDigest[i]); | ||
const messageDigest = digest.digest(); | ||
let hexString = ""; | ||
for (let i = 0; i < messageDigest.length; i++) { | ||
let h = java.lang.Integer.toHexString(0xFF & messageDigest[i]); | ||
while (h.length < 2) | ||
@@ -347,0 +336,0 @@ h = "0" + h; |
@@ -1,13 +0,10 @@ | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.hideBanner = exports.showRewardedVideoAd = exports.preloadRewardedVideoAd = exports.showInterstitial = exports.preloadInterstitial = exports.showBanner = exports.AD_SIZE = void 0; | ||
var platform_1 = require("@nativescript/core/platform"); | ||
var enums_1 = require("@nativescript/core/ui/enums"); | ||
var firebase_common_1 = require("../firebase-common"); | ||
var admob_common_1 = require("./admob-common"); | ||
Object.defineProperty(exports, "AD_SIZE", { enumerable: true, get: function () { return admob_common_1.AD_SIZE; } }); | ||
var _bannerOptions = undefined; | ||
var _rewardBasedVideoAdDelegate = undefined; | ||
function showBanner(arg) { | ||
return new Promise(function (resolve, reject) { | ||
import { Device } from "@nativescript/core/platform"; | ||
import { DeviceType } from "@nativescript/core/ui/enums"; | ||
import { firebase } from "../firebase-common"; | ||
import { AD_SIZE, BANNER_DEFAULTS, rewardedVideoCallbacks } from "./admob-common"; | ||
export { AD_SIZE }; | ||
let _bannerOptions = undefined; | ||
let _rewardBasedVideoAdDelegate = undefined; | ||
export function showBanner(arg) { | ||
return new Promise((resolve, reject) => { | ||
try { | ||
@@ -18,21 +15,21 @@ if (typeof (GADRequest) === "undefined") { | ||
} | ||
if (firebase_common_1.firebase.admob.adView !== null && firebase_common_1.firebase.admob.adView !== undefined) { | ||
firebase_common_1.firebase.admob.adView.removeFromSuperview(); | ||
firebase_common_1.firebase.admob.adView = null; | ||
if (firebase.admob.adView !== null && firebase.admob.adView !== undefined) { | ||
firebase.admob.adView.removeFromSuperview(); | ||
firebase.admob.adView = null; | ||
} | ||
admob_common_1.BANNER_DEFAULTS.view = UIApplication.sharedApplication.keyWindow.rootViewController.view; | ||
var settings = firebase_common_1.firebase.merge(arg, admob_common_1.BANNER_DEFAULTS); | ||
BANNER_DEFAULTS.view = UIApplication.sharedApplication.keyWindow.rootViewController.view; | ||
const settings = firebase.merge(arg, BANNER_DEFAULTS); | ||
_bannerOptions = settings; | ||
var view = settings.view; | ||
var bannerType = _getBannerType(settings.size); | ||
var adWidth = bannerType.size.width === 0 ? view.frame.size.width : bannerType.size.width; | ||
var adHeight = bannerType.size.smartHeight ? bannerType.size.smartHeight : bannerType.size.height; | ||
var originX = (view.frame.size.width - adWidth) / 2; | ||
var originY = settings.margins.top > -1 ? settings.margins.top : (settings.margins.bottom > -1 ? view.frame.size.height - adHeight - settings.margins.bottom : 0.0); | ||
var origin_1 = CGPointMake(originX, originY); | ||
firebase_common_1.firebase.admob.adView = GADBannerView.alloc().initWithAdSizeOrigin(bannerType, origin_1); | ||
firebase_common_1.firebase.admob.adView.adUnitID = settings.iosBannerId; | ||
var adRequest = GADRequest.request(); | ||
const view = settings.view; | ||
const bannerType = _getBannerType(settings.size); | ||
const adWidth = bannerType.size.width === 0 ? view.frame.size.width : bannerType.size.width; | ||
const adHeight = bannerType.size.smartHeight ? bannerType.size.smartHeight : bannerType.size.height; | ||
const originX = (view.frame.size.width - adWidth) / 2; | ||
const originY = settings.margins.top > -1 ? settings.margins.top : (settings.margins.bottom > -1 ? view.frame.size.height - adHeight - settings.margins.bottom : 0.0); | ||
const origin = CGPointMake(originX, originY); | ||
firebase.admob.adView = GADBannerView.alloc().initWithAdSizeOrigin(bannerType, origin); | ||
firebase.admob.adView.adUnitID = settings.iosBannerId; | ||
const adRequest = GADRequest.request(); | ||
if (settings.testing) { | ||
var testDevices = []; | ||
let testDevices = []; | ||
try { | ||
@@ -51,5 +48,5 @@ testDevices.push("Simulator"); | ||
} | ||
firebase_common_1.firebase.admob.adView.rootViewController = UIApplication.sharedApplication.keyWindow.rootViewController; | ||
firebase_common_1.firebase.admob.adView.loadRequest(adRequest); | ||
var delegate_1 = GADBannerViewDelegateImpl.new().initWithOptionsAndCallback(arg, function (ad, error) { | ||
firebase.admob.adView.rootViewController = UIApplication.sharedApplication.keyWindow.rootViewController; | ||
firebase.admob.adView.loadRequest(adRequest); | ||
let delegate = GADBannerViewDelegateImpl.new().initWithOptionsAndCallback(arg, (ad, error) => { | ||
if (error) { | ||
@@ -61,10 +58,10 @@ reject(error.localizedDescription); | ||
} | ||
}, function () { | ||
}, () => { | ||
arg.onClosed && arg.onClosed(); | ||
CFRelease(delegate_1); | ||
delegate_1 = undefined; | ||
CFRelease(delegate); | ||
delegate = undefined; | ||
}); | ||
CFRetain(delegate_1); | ||
firebase_common_1.firebase.admob.adView.delegate = delegate_1; | ||
view.addSubview(firebase_common_1.firebase.admob.adView); | ||
CFRetain(delegate); | ||
firebase.admob.adView.delegate = delegate; | ||
view.addSubview(firebase.admob.adView); | ||
} | ||
@@ -77,5 +74,4 @@ catch (ex) { | ||
} | ||
exports.showBanner = showBanner; | ||
function preloadInterstitial(arg) { | ||
return new Promise(function (resolve, reject) { | ||
export function preloadInterstitial(arg) { | ||
return new Promise((resolve, reject) => { | ||
try { | ||
@@ -86,5 +82,5 @@ if (typeof (GADRequest) === "undefined") { | ||
} | ||
var settings = firebase_common_1.firebase.merge(arg, admob_common_1.BANNER_DEFAULTS); | ||
firebase_common_1.firebase.admob.interstitialView = GADInterstitial.alloc().initWithAdUnitID(settings.iosInterstitialId); | ||
var delegate_2 = GADInterstitialDelegateImpl.new().initWithOptionsAndCallback(arg, function (ad, error) { | ||
const settings = firebase.merge(arg, BANNER_DEFAULTS); | ||
firebase.admob.interstitialView = GADInterstitial.alloc().initWithAdUnitID(settings.iosInterstitialId); | ||
let delegate = GADInterstitialDelegateImpl.new().initWithOptionsAndCallback(arg, (ad, error) => { | ||
if (error) { | ||
@@ -96,13 +92,13 @@ reject(error.localizedDescription); | ||
} | ||
}, function () { | ||
}, () => { | ||
arg.onAdClosed && arg.onAdClosed(); | ||
arg.onClosed && arg.onClosed(); | ||
CFRelease(delegate_2); | ||
delegate_2 = undefined; | ||
CFRelease(delegate); | ||
delegate = undefined; | ||
}); | ||
CFRetain(delegate_2); | ||
firebase_common_1.firebase.admob.interstitialView.delegate = delegate_2; | ||
var adRequest = GADRequest.request(); | ||
CFRetain(delegate); | ||
firebase.admob.interstitialView.delegate = delegate; | ||
const adRequest = GADRequest.request(); | ||
if (settings.testing) { | ||
var testDevices = []; | ||
let testDevices = []; | ||
try { | ||
@@ -118,3 +114,3 @@ testDevices.push("Simulator"); | ||
} | ||
firebase_common_1.firebase.admob.interstitialView.loadRequest(adRequest); | ||
firebase.admob.interstitialView.loadRequest(adRequest); | ||
} | ||
@@ -127,5 +123,4 @@ catch (ex) { | ||
} | ||
exports.preloadInterstitial = preloadInterstitial; | ||
function showInterstitial(arg) { | ||
return new Promise(function (resolve, reject) { | ||
export function showInterstitial(arg) { | ||
return new Promise((resolve, reject) => { | ||
try { | ||
@@ -137,4 +132,4 @@ if (typeof (GADRequest) === "undefined") { | ||
if (!arg) { | ||
if (firebase_common_1.firebase.admob.interstitialView) { | ||
firebase_common_1.firebase.admob.interstitialView.presentFromRootViewController(UIApplication.sharedApplication.keyWindow.rootViewController); | ||
if (firebase.admob.interstitialView) { | ||
firebase.admob.interstitialView.presentFromRootViewController(UIApplication.sharedApplication.keyWindow.rootViewController); | ||
resolve(); | ||
@@ -147,5 +142,5 @@ } | ||
} | ||
var settings = firebase_common_1.firebase.merge(arg, admob_common_1.BANNER_DEFAULTS); | ||
firebase_common_1.firebase.admob.interstitialView = GADInterstitial.alloc().initWithAdUnitID(settings.iosInterstitialId); | ||
var delegate_3 = GADInterstitialDelegateImpl.new().initWithOptionsAndCallback(arg, function (ad, error) { | ||
const settings = firebase.merge(arg, BANNER_DEFAULTS); | ||
firebase.admob.interstitialView = GADInterstitial.alloc().initWithAdUnitID(settings.iosInterstitialId); | ||
let delegate = GADInterstitialDelegateImpl.new().initWithOptionsAndCallback(arg, (ad, error) => { | ||
if (error) { | ||
@@ -155,13 +150,13 @@ reject(error.localizedDescription); | ||
else { | ||
firebase_common_1.firebase.admob.interstitialView.presentFromRootViewController(UIApplication.sharedApplication.keyWindow.rootViewController); | ||
firebase.admob.interstitialView.presentFromRootViewController(UIApplication.sharedApplication.keyWindow.rootViewController); | ||
resolve(); | ||
} | ||
CFRelease(delegate_3); | ||
delegate_3 = undefined; | ||
CFRelease(delegate); | ||
delegate = undefined; | ||
}); | ||
CFRetain(delegate_3); | ||
firebase_common_1.firebase.admob.interstitialView.delegate = delegate_3; | ||
var adRequest = GADRequest.request(); | ||
CFRetain(delegate); | ||
firebase.admob.interstitialView.delegate = delegate; | ||
const adRequest = GADRequest.request(); | ||
if (settings.testing) { | ||
var testDevices = []; | ||
let testDevices = []; | ||
try { | ||
@@ -177,3 +172,3 @@ testDevices.push("Simulator"); | ||
} | ||
firebase_common_1.firebase.admob.interstitialView.loadRequest(adRequest); | ||
firebase.admob.interstitialView.loadRequest(adRequest); | ||
} | ||
@@ -186,5 +181,4 @@ catch (ex) { | ||
} | ||
exports.showInterstitial = showInterstitial; | ||
function preloadRewardedVideoAd(arg) { | ||
return new Promise(function (resolve, reject) { | ||
export function preloadRewardedVideoAd(arg) { | ||
return new Promise((resolve, reject) => { | ||
try { | ||
@@ -195,12 +189,12 @@ if (typeof (GADRequest) === "undefined") { | ||
} | ||
var onLoaded = function () { return resolve(); }; | ||
var onError = function (err) { return reject(err); }; | ||
const onLoaded = () => resolve(); | ||
const onError = err => reject(err); | ||
_rewardBasedVideoAdDelegate = GADRewardBasedVideoAdDelegateImpl.new().initWithCallback(onLoaded, onError); | ||
CFRetain(_rewardBasedVideoAdDelegate); | ||
firebase_common_1.firebase.admob.rewardedAdVideoView = GADRewardBasedVideoAd.sharedInstance(); | ||
firebase_common_1.firebase.admob.rewardedAdVideoView.delegate = _rewardBasedVideoAdDelegate; | ||
var settings = firebase_common_1.firebase.merge(arg, admob_common_1.BANNER_DEFAULTS); | ||
var adRequest = GADRequest.request(); | ||
firebase.admob.rewardedAdVideoView = GADRewardBasedVideoAd.sharedInstance(); | ||
firebase.admob.rewardedAdVideoView.delegate = _rewardBasedVideoAdDelegate; | ||
const settings = firebase.merge(arg, BANNER_DEFAULTS); | ||
const adRequest = GADRequest.request(); | ||
if (settings.testing) { | ||
var testDevices = []; | ||
let testDevices = []; | ||
try { | ||
@@ -216,3 +210,3 @@ testDevices.push("Simulator"); | ||
} | ||
firebase_common_1.firebase.admob.rewardedAdVideoView.loadRequestWithAdUnitID(adRequest, settings.iosAdPlacementId); | ||
firebase.admob.rewardedAdVideoView.loadRequestWithAdUnitID(adRequest, settings.iosAdPlacementId); | ||
} | ||
@@ -225,5 +219,4 @@ catch (ex) { | ||
} | ||
exports.preloadRewardedVideoAd = preloadRewardedVideoAd; | ||
function showRewardedVideoAd(arg) { | ||
return new Promise(function (resolve, reject) { | ||
export function showRewardedVideoAd(arg) { | ||
return new Promise((resolve, reject) => { | ||
try { | ||
@@ -234,3 +227,3 @@ if (typeof (GADRequest) === "undefined") { | ||
} | ||
if (!firebase_common_1.firebase.admob.rewardedAdVideoView) { | ||
if (!firebase.admob.rewardedAdVideoView) { | ||
reject("Please call 'preloadRewardedVideoAd' first"); | ||
@@ -240,20 +233,20 @@ return; | ||
if (arg.onRewarded) { | ||
admob_common_1.rewardedVideoCallbacks.onRewarded = arg.onRewarded; | ||
rewardedVideoCallbacks.onRewarded = arg.onRewarded; | ||
} | ||
if (arg.onLeftApplication) { | ||
admob_common_1.rewardedVideoCallbacks.onLeftApplication = arg.onLeftApplication; | ||
rewardedVideoCallbacks.onLeftApplication = arg.onLeftApplication; | ||
} | ||
if (arg.onClosed) { | ||
admob_common_1.rewardedVideoCallbacks.onClosed = arg.onClosed; | ||
rewardedVideoCallbacks.onClosed = arg.onClosed; | ||
} | ||
if (arg.onOpened) { | ||
admob_common_1.rewardedVideoCallbacks.onOpened = arg.onOpened; | ||
rewardedVideoCallbacks.onOpened = arg.onOpened; | ||
} | ||
if (arg.onStarted) { | ||
admob_common_1.rewardedVideoCallbacks.onStarted = arg.onStarted; | ||
rewardedVideoCallbacks.onStarted = arg.onStarted; | ||
} | ||
if (arg.onCompleted) { | ||
admob_common_1.rewardedVideoCallbacks.onCompleted = arg.onCompleted; | ||
rewardedVideoCallbacks.onCompleted = arg.onCompleted; | ||
} | ||
firebase_common_1.firebase.admob.rewardedAdVideoView.presentFromRootViewController(UIApplication.sharedApplication.keyWindow.rootViewController); | ||
firebase.admob.rewardedAdVideoView.presentFromRootViewController(UIApplication.sharedApplication.keyWindow.rootViewController); | ||
resolve(); | ||
@@ -267,9 +260,8 @@ } | ||
} | ||
exports.showRewardedVideoAd = showRewardedVideoAd; | ||
function hideBanner() { | ||
return new Promise(function (resolve, reject) { | ||
export function hideBanner() { | ||
return new Promise((resolve, reject) => { | ||
try { | ||
if (firebase_common_1.firebase.admob.adView !== null) { | ||
firebase_common_1.firebase.admob.adView.removeFromSuperview(); | ||
firebase_common_1.firebase.admob.adView = null; | ||
if (firebase.admob.adView !== null) { | ||
firebase.admob.adView.removeFromSuperview(); | ||
firebase.admob.adView = null; | ||
} | ||
@@ -284,26 +276,25 @@ resolve(); | ||
} | ||
exports.hideBanner = hideBanner; | ||
function _getBannerType(size) { | ||
if (size === admob_common_1.AD_SIZE.BANNER) { | ||
if (size === AD_SIZE.BANNER) { | ||
return { "size": { "width": 320, "height": 50 }, "flags": 0 }; | ||
} | ||
else if (size === admob_common_1.AD_SIZE.LARGE_BANNER) { | ||
else if (size === AD_SIZE.LARGE_BANNER) { | ||
return { "size": { "width": 320, "height": 100 }, "flags": 0 }; | ||
} | ||
else if (size === admob_common_1.AD_SIZE.MEDIUM_RECTANGLE) { | ||
else if (size === AD_SIZE.MEDIUM_RECTANGLE) { | ||
return { "size": { "width": 300, "height": 250 }, "flags": 0 }; | ||
} | ||
else if (size === admob_common_1.AD_SIZE.FULL_BANNER) { | ||
else if (size === AD_SIZE.FULL_BANNER) { | ||
return { "size": { "width": 468, "height": 60 }, "flags": 0 }; | ||
} | ||
else if (size === admob_common_1.AD_SIZE.LEADERBOARD) { | ||
else if (size === AD_SIZE.LEADERBOARD) { | ||
return { "size": { "width": 728, "height": 90 }, "flags": 0 }; | ||
} | ||
else if (size === admob_common_1.AD_SIZE.SKYSCRAPER) { | ||
else if (size === AD_SIZE.SKYSCRAPER) { | ||
return { "size": { "width": 120, "height": 600 }, "flags": 0 }; | ||
} | ||
else if (size === admob_common_1.AD_SIZE.SMART_BANNER || size === admob_common_1.AD_SIZE.FLUID) { | ||
var orientation_1 = UIDevice.currentDevice.orientation; | ||
var isIPad = platform_1.Device.deviceType === enums_1.DeviceType.Tablet; | ||
if (orientation_1 === 1 || orientation_1 === 2) { | ||
else if (size === AD_SIZE.SMART_BANNER || size === AD_SIZE.FLUID) { | ||
const orientation = UIDevice.currentDevice.orientation; | ||
const isIPad = Device.deviceType === DeviceType.Tablet; | ||
if (orientation === 1 || orientation === 2) { | ||
return { "size": { "width": 0, "height": 0, "smartHeight": isIPad ? 90 : 50 }, "flags": 18 }; | ||
@@ -319,15 +310,10 @@ } | ||
} | ||
var GADInterstitialDelegateImpl = (function (_super) { | ||
__extends(GADInterstitialDelegateImpl, _super); | ||
function GADInterstitialDelegateImpl() { | ||
return _super !== null && _super.apply(this, arguments) || this; | ||
} | ||
GADInterstitialDelegateImpl.new = function () { | ||
class GADInterstitialDelegateImpl extends NSObject { | ||
static new() { | ||
if (GADInterstitialDelegateImpl.ObjCProtocols.length === 0 && typeof (GADInterstitialDelegate) !== "undefined") { | ||
GADInterstitialDelegateImpl.ObjCProtocols.push(GADInterstitialDelegate); | ||
} | ||
return _super.new.call(this); | ||
}; | ||
GADInterstitialDelegateImpl.prototype.initWithOptionsAndCallback = function (options, callback, onAdCloseCallback) { | ||
if (onAdCloseCallback === void 0) { onAdCloseCallback = null; } | ||
return super.new(); | ||
} | ||
initWithOptionsAndCallback(options, callback, onAdCloseCallback = null) { | ||
this.options = options; | ||
@@ -337,31 +323,25 @@ this.callback = callback; | ||
return this; | ||
}; | ||
GADInterstitialDelegateImpl.prototype.interstitialDidReceiveAd = function (ad) { | ||
} | ||
interstitialDidReceiveAd(ad) { | ||
this.callback(ad); | ||
}; | ||
GADInterstitialDelegateImpl.prototype.interstitialDidDismissScreen = function (ad) { | ||
} | ||
interstitialDidDismissScreen(ad) { | ||
this.onAdCloseCallback(); | ||
}; | ||
GADInterstitialDelegateImpl.prototype.interstitialDidFailToReceiveAdWithError = function (ad, error) { | ||
} | ||
interstitialDidFailToReceiveAdWithError(ad, error) { | ||
this.callback(ad, error); | ||
}; | ||
GADInterstitialDelegateImpl.prototype.interstitialWillLeaveApplication = function (ad) { | ||
} | ||
interstitialWillLeaveApplication(ad) { | ||
this.options.onLeftApplication && this.options.onLeftApplication(); | ||
}; | ||
GADInterstitialDelegateImpl.ObjCProtocols = []; | ||
return GADInterstitialDelegateImpl; | ||
}(NSObject)); | ||
var GADBannerViewDelegateImpl = (function (_super) { | ||
__extends(GADBannerViewDelegateImpl, _super); | ||
function GADBannerViewDelegateImpl() { | ||
return _super !== null && _super.apply(this, arguments) || this; | ||
} | ||
GADBannerViewDelegateImpl.new = function () { | ||
} | ||
GADInterstitialDelegateImpl.ObjCProtocols = []; | ||
class GADBannerViewDelegateImpl extends NSObject { | ||
static new() { | ||
if (GADBannerViewDelegateImpl.ObjCProtocols.length === 0 && typeof (GADBannerViewDelegate) !== "undefined") { | ||
GADBannerViewDelegateImpl.ObjCProtocols.push(GADBannerViewDelegate); | ||
} | ||
return _super.new.call(this); | ||
}; | ||
GADBannerViewDelegateImpl.prototype.initWithOptionsAndCallback = function (options, callback, onAdCloseCallback) { | ||
if (onAdCloseCallback === void 0) { onAdCloseCallback = null; } | ||
return super.new(); | ||
} | ||
initWithOptionsAndCallback(options, callback, onAdCloseCallback = null) { | ||
this.options = options; | ||
@@ -371,37 +351,32 @@ this.callback = callback; | ||
return this; | ||
}; | ||
GADBannerViewDelegateImpl.prototype.adViewDidReceiveAd = function (bannerView) { | ||
} | ||
adViewDidReceiveAd(bannerView) { | ||
this.callback(bannerView, null); | ||
}; | ||
GADBannerViewDelegateImpl.prototype.adViewDidFailToReceiveAdWithError = function (bannerView, error) { | ||
} | ||
adViewDidFailToReceiveAdWithError(bannerView, error) { | ||
this.callback(bannerView, error); | ||
}; | ||
GADBannerViewDelegateImpl.prototype.adViewDidDismissScreen = function (bannerView) { | ||
} | ||
adViewDidDismissScreen(bannerView) { | ||
this.onAdCloseCallback(); | ||
}; | ||
GADBannerViewDelegateImpl.prototype.adViewWillLeaveApplication = function (bannerView) { | ||
} | ||
adViewWillLeaveApplication(bannerView) { | ||
this.options.onLeftApplication && this.options.onLeftApplication(); | ||
}; | ||
GADBannerViewDelegateImpl.ObjCProtocols = []; | ||
return GADBannerViewDelegateImpl; | ||
}(NSObject)); | ||
var GADRewardBasedVideoAdDelegateImpl = (function (_super) { | ||
__extends(GADRewardBasedVideoAdDelegateImpl, _super); | ||
function GADRewardBasedVideoAdDelegateImpl() { | ||
return _super !== null && _super.apply(this, arguments) || this; | ||
} | ||
GADRewardBasedVideoAdDelegateImpl.new = function () { | ||
} | ||
GADBannerViewDelegateImpl.ObjCProtocols = []; | ||
class GADRewardBasedVideoAdDelegateImpl extends NSObject { | ||
static new() { | ||
if (GADRewardBasedVideoAdDelegateImpl.ObjCProtocols.length === 0 && typeof (GADRewardBasedVideoAdDelegate) !== "undefined") { | ||
GADRewardBasedVideoAdDelegateImpl.ObjCProtocols.push(GADRewardBasedVideoAdDelegate); | ||
} | ||
return _super.new.call(this); | ||
}; | ||
GADRewardBasedVideoAdDelegateImpl.prototype.initWithCallback = function (loaded, error) { | ||
return super.new(); | ||
} | ||
initWithCallback(loaded, error) { | ||
this._loaded = loaded; | ||
this._error = error; | ||
return this; | ||
}; | ||
GADRewardBasedVideoAdDelegateImpl.prototype.rewardBasedVideoAdDidClose = function (rewardBasedVideoAd) { | ||
firebase_common_1.firebase.admob.rewardedAdVideoView = undefined; | ||
admob_common_1.rewardedVideoCallbacks.onClosed(); | ||
} | ||
rewardBasedVideoAdDidClose(rewardBasedVideoAd) { | ||
firebase.admob.rewardedAdVideoView = undefined; | ||
rewardedVideoCallbacks.onClosed(); | ||
setTimeout(function () { | ||
@@ -411,29 +386,28 @@ CFRelease(_rewardBasedVideoAdDelegate); | ||
}); | ||
}; | ||
GADRewardBasedVideoAdDelegateImpl.prototype.rewardBasedVideoAdDidCompletePlaying = function (rewardBasedVideoAd) { | ||
admob_common_1.rewardedVideoCallbacks.onCompleted(); | ||
}; | ||
GADRewardBasedVideoAdDelegateImpl.prototype.rewardBasedVideoAdDidFailToLoadWithError = function (rewardBasedVideoAd, error) { | ||
} | ||
rewardBasedVideoAdDidCompletePlaying(rewardBasedVideoAd) { | ||
rewardedVideoCallbacks.onCompleted(); | ||
} | ||
rewardBasedVideoAdDidFailToLoadWithError(rewardBasedVideoAd, error) { | ||
this._error(error.localizedDescription); | ||
}; | ||
GADRewardBasedVideoAdDelegateImpl.prototype.rewardBasedVideoAdDidOpen = function (rewardBasedVideoAd) { | ||
admob_common_1.rewardedVideoCallbacks.onOpened(); | ||
}; | ||
GADRewardBasedVideoAdDelegateImpl.prototype.rewardBasedVideoAdDidReceiveAd = function (rewardBasedVideoAd) { | ||
} | ||
rewardBasedVideoAdDidOpen(rewardBasedVideoAd) { | ||
rewardedVideoCallbacks.onOpened(); | ||
} | ||
rewardBasedVideoAdDidReceiveAd(rewardBasedVideoAd) { | ||
this._loaded(); | ||
}; | ||
GADRewardBasedVideoAdDelegateImpl.prototype.rewardBasedVideoAdDidRewardUserWithReward = function (rewardBasedVideoAd, reward) { | ||
admob_common_1.rewardedVideoCallbacks.onRewarded({ | ||
} | ||
rewardBasedVideoAdDidRewardUserWithReward(rewardBasedVideoAd, reward) { | ||
rewardedVideoCallbacks.onRewarded({ | ||
amount: reward.amount ? reward.amount.doubleValue : undefined, | ||
type: reward.type | ||
}); | ||
}; | ||
GADRewardBasedVideoAdDelegateImpl.prototype.rewardBasedVideoAdDidStartPlaying = function (rewardBasedVideoAd) { | ||
admob_common_1.rewardedVideoCallbacks.onStarted(); | ||
}; | ||
GADRewardBasedVideoAdDelegateImpl.prototype.rewardBasedVideoAdWillLeaveApplication = function (rewardBasedVideoAd) { | ||
admob_common_1.rewardedVideoCallbacks.onLeftApplication(); | ||
}; | ||
GADRewardBasedVideoAdDelegateImpl.ObjCProtocols = []; | ||
return GADRewardBasedVideoAdDelegateImpl; | ||
}(NSObject)); | ||
} | ||
rewardBasedVideoAdDidStartPlaying(rewardBasedVideoAd) { | ||
rewardedVideoCallbacks.onStarted(); | ||
} | ||
rewardBasedVideoAdWillLeaveApplication(rewardBasedVideoAd) { | ||
rewardedVideoCallbacks.onLeftApplication(); | ||
} | ||
} | ||
GADRewardBasedVideoAdDelegateImpl.ObjCProtocols = []; |
@@ -1,5 +0,2 @@ | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.admob = void 0; | ||
var ads = require("./admob"); | ||
exports.admob = ads; | ||
import * as ads from "./admob"; | ||
export const admob = ads; |
@@ -1,6 +0,3 @@ | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.validateAnalyticsParam = exports.validateAnalyticsKey = exports.ENABLE_ANALYTICS_HINT = void 0; | ||
exports.ENABLE_ANALYTICS_HINT = "⚠️ You're calling an Analytics function but have not enabled it. Please add 'analytics: true' to 'firebase.nativescript.json' and remove the 'node_modules' and 'platforms' folders."; | ||
function validateAnalyticsKey(key) { | ||
export const ENABLE_ANALYTICS_HINT = "⚠️ You're calling an Analytics function but have not enabled it. Please add 'analytics: true' to 'firebase.nativescript.json' and remove the 'node_modules' and 'platforms' folders."; | ||
export function validateAnalyticsKey(key) { | ||
if (key === undefined || key === null) { | ||
@@ -51,7 +48,5 @@ return "Argument 'key' is missing"; | ||
} | ||
exports.validateAnalyticsKey = validateAnalyticsKey; | ||
function validateAnalyticsParam(param) { | ||
export function validateAnalyticsParam(param) { | ||
return validateAnalyticsParamKey(param.key) || validateAnalyticsParamValue(param.value); | ||
} | ||
exports.validateAnalyticsParam = validateAnalyticsParam; | ||
function validateAnalyticsParamKey(key) { | ||
@@ -58,0 +53,0 @@ if (key === undefined) { |
@@ -1,14 +0,11 @@ | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.setSessionTimeoutDuration = exports.setAnalyticsCollectionEnabled = exports.setScreenName = exports.setUserProperty = exports.setUserId = exports.logComplexEvent = exports.logEvent = void 0; | ||
var appModule = require("@nativescript/core/application"); | ||
var analytics_common_1 = require("./analytics-common"); | ||
function logEvent(options) { | ||
return new Promise(function (resolve, reject) { | ||
import * as appModule from "@nativescript/core/application"; | ||
import { ENABLE_ANALYTICS_HINT, validateAnalyticsKey, validateAnalyticsParam } from "./analytics-common"; | ||
export function logEvent(options) { | ||
return new Promise((resolve, reject) => { | ||
if (!isAnalyticsAvailable()) { | ||
reject(analytics_common_1.ENABLE_ANALYTICS_HINT); | ||
reject(ENABLE_ANALYTICS_HINT); | ||
return; | ||
} | ||
try { | ||
var validationError = analytics_common_1.validateAnalyticsKey(options.key); | ||
const validationError = validateAnalyticsKey(options.key); | ||
if (validationError !== undefined) { | ||
@@ -18,7 +15,7 @@ reject(validationError); | ||
} | ||
var bundle = new android.os.Bundle(); | ||
const bundle = new android.os.Bundle(); | ||
if (options.parameters !== undefined) { | ||
for (var p in options.parameters) { | ||
var param = options.parameters[p]; | ||
var validationParamError = analytics_common_1.validateAnalyticsParam(param); | ||
for (const p in options.parameters) { | ||
const param = options.parameters[p]; | ||
const validationParamError = validateAnalyticsParam(param); | ||
if (validationParamError !== undefined) { | ||
@@ -42,7 +39,6 @@ reject(validationParamError); | ||
} | ||
exports.logEvent = logEvent; | ||
function logComplexEvent(options) { | ||
return new Promise(function (resolve, reject) { | ||
export function logComplexEvent(options) { | ||
return new Promise((resolve, reject) => { | ||
if (!isAnalyticsAvailable()) { | ||
reject(analytics_common_1.ENABLE_ANALYTICS_HINT); | ||
reject(ENABLE_ANALYTICS_HINT); | ||
return; | ||
@@ -55,3 +51,3 @@ } | ||
} | ||
var bundle = new android.os.Bundle(); | ||
let bundle = new android.os.Bundle(); | ||
if (options.parameters !== undefined) { | ||
@@ -69,7 +65,6 @@ bundle = buildBundle(options.parameters); | ||
} | ||
exports.logComplexEvent = logComplexEvent; | ||
function setUserId(arg) { | ||
return new Promise(function (resolve, reject) { | ||
export function setUserId(arg) { | ||
return new Promise((resolve, reject) => { | ||
if (!isAnalyticsAvailable()) { | ||
reject(analytics_common_1.ENABLE_ANALYTICS_HINT); | ||
reject(ENABLE_ANALYTICS_HINT); | ||
return; | ||
@@ -91,7 +86,6 @@ } | ||
} | ||
exports.setUserId = setUserId; | ||
function setUserProperty(options) { | ||
return new Promise(function (resolve, reject) { | ||
export function setUserProperty(options) { | ||
return new Promise((resolve, reject) => { | ||
if (!isAnalyticsAvailable()) { | ||
reject(analytics_common_1.ENABLE_ANALYTICS_HINT); | ||
reject(ENABLE_ANALYTICS_HINT); | ||
return; | ||
@@ -117,7 +111,6 @@ } | ||
} | ||
exports.setUserProperty = setUserProperty; | ||
function setScreenName(options) { | ||
return new Promise(function (resolve, reject) { | ||
export function setScreenName(options) { | ||
return new Promise((resolve, reject) => { | ||
if (!isAnalyticsAvailable()) { | ||
reject(analytics_common_1.ENABLE_ANALYTICS_HINT); | ||
reject(ENABLE_ANALYTICS_HINT); | ||
return; | ||
@@ -139,4 +132,3 @@ } | ||
} | ||
exports.setScreenName = setScreenName; | ||
function setAnalyticsCollectionEnabled(enabled) { | ||
export function setAnalyticsCollectionEnabled(enabled) { | ||
if (isAnalyticsAvailable()) { | ||
@@ -146,4 +138,3 @@ com.google.firebase.analytics.FirebaseAnalytics.getInstance(appModule.android.context || appModule.getNativeApplication()).setAnalyticsCollectionEnabled(enabled); | ||
} | ||
exports.setAnalyticsCollectionEnabled = setAnalyticsCollectionEnabled; | ||
function setSessionTimeoutDuration(seconds) { | ||
export function setSessionTimeoutDuration(seconds) { | ||
if (isAnalyticsAvailable()) { | ||
@@ -153,9 +144,8 @@ com.google.firebase.analytics.FirebaseAnalytics.getInstance(appModule.android.context || appModule.getNativeApplication()).setSessionTimeoutDuration(seconds * 1000); | ||
} | ||
exports.setSessionTimeoutDuration = setSessionTimeoutDuration; | ||
function getArrayList(array) { | ||
var returnArray = new java.util.ArrayList(); | ||
for (var p in array) { | ||
var param = array[p]; | ||
let returnArray = new java.util.ArrayList(); | ||
for (const p in array) { | ||
const param = array[p]; | ||
if (param.parameters !== undefined) { | ||
var bundle = buildBundle(param.parameters); | ||
let bundle = buildBundle(param.parameters); | ||
returnArray.add(bundle); | ||
@@ -170,5 +160,5 @@ } | ||
function buildBundle(params) { | ||
var bundle = new android.os.Bundle(); | ||
for (var p in params) { | ||
var param = params[p]; | ||
const bundle = new android.os.Bundle(); | ||
for (const p in params) { | ||
const param = params[p]; | ||
if (param.value !== undefined) { | ||
@@ -202,3 +192,3 @@ if (param.type === "string") { | ||
if (typeof (com.google.firebase.analytics) === "undefined" || typeof (com.google.firebase.analytics.FirebaseAnalytics) === "undefined") { | ||
console.log(analytics_common_1.ENABLE_ANALYTICS_HINT); | ||
console.log(ENABLE_ANALYTICS_HINT); | ||
return false; | ||
@@ -205,0 +195,0 @@ } |
@@ -1,13 +0,10 @@ | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.iOSHandleOpenURL = exports.setSessionTimeoutDuration = exports.setAnalyticsCollectionEnabled = exports.setScreenName = exports.setUserProperty = exports.setUserId = exports.logComplexEvent = exports.logEvent = void 0; | ||
var analytics_common_1 = require("./analytics-common"); | ||
function logEvent(options) { | ||
return new Promise(function (resolve, reject) { | ||
import { ENABLE_ANALYTICS_HINT, validateAnalyticsKey, validateAnalyticsParam } from "./analytics-common"; | ||
export function logEvent(options) { | ||
return new Promise((resolve, reject) => { | ||
if (!isAnalyticsAvailable()) { | ||
reject(analytics_common_1.ENABLE_ANALYTICS_HINT); | ||
reject(ENABLE_ANALYTICS_HINT); | ||
return; | ||
} | ||
try { | ||
var validationError = analytics_common_1.validateAnalyticsKey(options.key); | ||
const validationError = validateAnalyticsKey(options.key); | ||
if (validationError !== undefined) { | ||
@@ -17,7 +14,7 @@ reject(validationError); | ||
} | ||
var dic = NSMutableDictionary.new(); | ||
const dic = NSMutableDictionary.new(); | ||
if (options.parameters !== undefined) { | ||
for (var p in options.parameters) { | ||
var param = options.parameters[p]; | ||
var validationParamError = analytics_common_1.validateAnalyticsParam(param); | ||
for (let p in options.parameters) { | ||
const param = options.parameters[p]; | ||
const validationParamError = validateAnalyticsParam(param); | ||
if (validationParamError !== undefined) { | ||
@@ -41,22 +38,21 @@ reject(validationParamError); | ||
} | ||
exports.logEvent = logEvent; | ||
function logComplexEvent(options) { | ||
return new Promise(function (resolve, reject) { | ||
export function logComplexEvent(options) { | ||
return new Promise((resolve, reject) => { | ||
if (!isAnalyticsAvailable()) { | ||
reject(analytics_common_1.ENABLE_ANALYTICS_HINT); | ||
reject(ENABLE_ANALYTICS_HINT); | ||
return; | ||
} | ||
try { | ||
var dic = NSMutableDictionary.new(); | ||
const dic = NSMutableDictionary.new(); | ||
if (options.parameters !== undefined) { | ||
for (var p in options.parameters) { | ||
var param = options.parameters[p]; | ||
for (let p in options.parameters) { | ||
const param = options.parameters[p]; | ||
if (param.type === "array" && param.value !== undefined) { | ||
var listArray = []; | ||
for (var val in param.value) { | ||
var value = param.value[val]; | ||
const listArray = []; | ||
for (let val in param.value) { | ||
const value = param.value[val]; | ||
if (value.parameters !== undefined) { | ||
var dicTemp = NSMutableDictionary.new(); | ||
for (var i in value.parameters) { | ||
var item = value.parameters[i]; | ||
const dicTemp = NSMutableDictionary.new(); | ||
for (let i in value.parameters) { | ||
const item = value.parameters[i]; | ||
if (item.type !== "array" && item.value !== undefined && item.key !== undefined) { | ||
@@ -85,7 +81,6 @@ dicTemp.setObjectForKey(item.value, item.key); | ||
} | ||
exports.logComplexEvent = logComplexEvent; | ||
function setUserId(arg) { | ||
return new Promise(function (resolve, reject) { | ||
export function setUserId(arg) { | ||
return new Promise((resolve, reject) => { | ||
if (!isAnalyticsAvailable()) { | ||
reject(analytics_common_1.ENABLE_ANALYTICS_HINT); | ||
reject(ENABLE_ANALYTICS_HINT); | ||
return; | ||
@@ -107,7 +102,6 @@ } | ||
} | ||
exports.setUserId = setUserId; | ||
function setUserProperty(options) { | ||
return new Promise(function (resolve, reject) { | ||
export function setUserProperty(options) { | ||
return new Promise((resolve, reject) => { | ||
if (!isAnalyticsAvailable()) { | ||
reject(analytics_common_1.ENABLE_ANALYTICS_HINT); | ||
reject(ENABLE_ANALYTICS_HINT); | ||
return; | ||
@@ -133,7 +127,6 @@ } | ||
} | ||
exports.setUserProperty = setUserProperty; | ||
function setScreenName(options) { | ||
return new Promise(function (resolve, reject) { | ||
export function setScreenName(options) { | ||
return new Promise((resolve, reject) => { | ||
if (!isAnalyticsAvailable()) { | ||
reject(analytics_common_1.ENABLE_ANALYTICS_HINT); | ||
reject(ENABLE_ANALYTICS_HINT); | ||
return; | ||
@@ -155,4 +148,3 @@ } | ||
} | ||
exports.setScreenName = setScreenName; | ||
function setAnalyticsCollectionEnabled(enabled) { | ||
export function setAnalyticsCollectionEnabled(enabled) { | ||
if (isAnalyticsAvailable()) { | ||
@@ -162,4 +154,3 @@ FIRAnalytics.setAnalyticsCollectionEnabled(enabled); | ||
} | ||
exports.setAnalyticsCollectionEnabled = setAnalyticsCollectionEnabled; | ||
function setSessionTimeoutDuration(seconds) { | ||
export function setSessionTimeoutDuration(seconds) { | ||
if (isAnalyticsAvailable()) { | ||
@@ -169,4 +160,3 @@ FIRAnalytics.setSessionTimeoutInterval(seconds); | ||
} | ||
exports.setSessionTimeoutDuration = setSessionTimeoutDuration; | ||
function iOSHandleOpenURL(url) { | ||
export function iOSHandleOpenURL(url) { | ||
if (isAnalyticsAvailable()) { | ||
@@ -176,6 +166,5 @@ FIRAnalytics.handleOpenURL(url); | ||
} | ||
exports.iOSHandleOpenURL = iOSHandleOpenURL; | ||
function isAnalyticsAvailable() { | ||
if (typeof (FIRAnalytics) === "undefined") { | ||
console.log(analytics_common_1.ENABLE_ANALYTICS_HINT); | ||
console.log(ENABLE_ANALYTICS_HINT); | ||
return false; | ||
@@ -182,0 +171,0 @@ } |
@@ -1,5 +0,2 @@ | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.analytics = void 0; | ||
var analytz = require("./analytics"); | ||
exports.analytics = analytz; | ||
import * as analytz from "./analytics"; | ||
export const analytics = analytz; |
@@ -1,18 +0,12 @@ | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.auth = void 0; | ||
var firebase = require("../../firebase"); | ||
var firebase_1 = require("../../firebase"); | ||
var auth; | ||
import * as firebase from "../../firebase"; | ||
import { LoginType } from "../../firebase"; | ||
export var auth; | ||
(function (auth) { | ||
var Auth = (function () { | ||
function Auth() { | ||
} | ||
Auth.prototype.loginHelper = function (options) { | ||
var _this = this; | ||
return new Promise(function (resolve, reject) { | ||
class Auth { | ||
loginHelper(options) { | ||
return new Promise((resolve, reject) => { | ||
firebase.login(options) | ||
.then(function (user) { | ||
_this.currentUser = user; | ||
_this.authStateChangedHandler && _this.authStateChangedHandler(user); | ||
.then((user) => { | ||
this.currentUser = user; | ||
this.authStateChangedHandler && this.authStateChangedHandler(user); | ||
resolve({ | ||
@@ -24,5 +18,5 @@ additionalUserInfo: user.additionalUserInfo, | ||
}); | ||
}).catch(function (err) { | ||
var code = 'auth/exception'; | ||
var message = err.toString(); | ||
}).catch(err => { | ||
let code = 'auth/exception'; | ||
let message = err.toString(); | ||
if (message.includes('com.google.firebase.auth.FirebaseAuthInvalidCredentialsException')) { | ||
@@ -34,3 +28,3 @@ code = 'auth/wrong-password'; | ||
} | ||
_this.authStateOnErrorHandler && _this.authStateOnErrorHandler(err.toString()); | ||
this.authStateOnErrorHandler && this.authStateOnErrorHandler(err.toString()); | ||
reject({ | ||
@@ -42,5 +36,4 @@ code: code, | ||
}); | ||
}; | ||
Auth.prototype.onAuthStateChanged = function (handler, error, completed) { | ||
var _this = this; | ||
} | ||
onAuthStateChanged(handler, error, completed) { | ||
this.authStateChangedHandler = handler; | ||
@@ -51,18 +44,17 @@ if (error) | ||
handler(this.currentUser); | ||
return function () { | ||
_this.authStateChangedHandler = undefined; | ||
_this.authStateOnErrorHandler = undefined; | ||
return () => { | ||
this.authStateChangedHandler = undefined; | ||
this.authStateOnErrorHandler = undefined; | ||
}; | ||
}; | ||
Auth.prototype.signOut = function () { | ||
var _this = this; | ||
return new Promise(function (resolve, reject) { | ||
} | ||
signOut() { | ||
return new Promise((resolve, reject) => { | ||
firebase.logout() | ||
.then(function () { | ||
_this.currentUser = undefined; | ||
_this.authStateChangedHandler && _this.authStateChangedHandler(); | ||
.then(() => { | ||
this.currentUser = undefined; | ||
this.authStateChangedHandler && this.authStateChangedHandler(); | ||
resolve(); | ||
}) | ||
.catch(function (err) { | ||
_this.authStateOnErrorHandler && _this.authStateOnErrorHandler(err); | ||
.catch(err => { | ||
this.authStateOnErrorHandler && this.authStateOnErrorHandler(err); | ||
reject({ | ||
@@ -73,12 +65,11 @@ message: err | ||
}); | ||
}; | ||
Auth.prototype.unlink = function (providerId) { | ||
var _this = this; | ||
return new Promise(function (resolve, reject) { | ||
} | ||
unlink(providerId) { | ||
return new Promise((resolve, reject) => { | ||
firebase.unlink(providerId) | ||
.then(function (user) { | ||
_this.currentUser = user; | ||
.then(user => { | ||
this.currentUser = user; | ||
resolve(user); | ||
}) | ||
.catch(function (err) { | ||
.catch(err => { | ||
reject({ | ||
@@ -89,6 +80,6 @@ message: err | ||
}); | ||
}; | ||
Auth.prototype.signInWithEmailAndPassword = function (email, password) { | ||
var emailOption = { | ||
type: firebase_1.LoginType.PASSWORD, | ||
} | ||
signInWithEmailAndPassword(email, password) { | ||
const emailOption = { | ||
type: LoginType.PASSWORD, | ||
passwordOptions: { | ||
@@ -100,6 +91,6 @@ email: email, | ||
return this.loginHelper(emailOption); | ||
}; | ||
Auth.prototype.signInWithCustomToken = function (token) { | ||
var customTokenOption = { | ||
type: firebase_1.LoginType.CUSTOM, | ||
} | ||
signInWithCustomToken(token) { | ||
const customTokenOption = { | ||
type: LoginType.CUSTOM, | ||
customOptions: { | ||
@@ -110,12 +101,12 @@ token: token | ||
return this.loginHelper(customTokenOption); | ||
}; | ||
Auth.prototype.signInAnonymously = function () { | ||
var anonymousOption = { | ||
type: firebase_1.LoginType.ANONYMOUS | ||
} | ||
signInAnonymously() { | ||
const anonymousOption = { | ||
type: LoginType.ANONYMOUS | ||
}; | ||
return this.loginHelper(anonymousOption); | ||
}; | ||
Auth.prototype.sendSignInLinkToEmail = function (email, actionCodeSettings) { | ||
var sendSignInLinklOption = { | ||
type: firebase_1.LoginType.EMAIL_LINK, | ||
} | ||
sendSignInLinkToEmail(email, actionCodeSettings) { | ||
const sendSignInLinklOption = { | ||
type: LoginType.EMAIL_LINK, | ||
emailLinkOptions: { | ||
@@ -127,5 +118,5 @@ email: email, | ||
return this.loginHelper(sendSignInLinklOption); | ||
}; | ||
Auth.prototype.signInWithEmailLink = function (email, emailLink) { | ||
var signInWithEmailOption = { | ||
} | ||
signInWithEmailLink(email, emailLink) { | ||
const signInWithEmailOption = { | ||
type: firebase.LoginType.EMAIL_LINK, | ||
@@ -138,42 +129,40 @@ emailLinkOptions: { | ||
return this.loginHelper(signInWithEmailOption); | ||
}; | ||
Auth.prototype.createUserWithEmailAndPassword = function (email, password) { | ||
var _this = this; | ||
return new Promise(function (resolve, reject) { | ||
} | ||
createUserWithEmailAndPassword(email, password) { | ||
return new Promise((resolve, reject) => { | ||
firebase.createUser({ | ||
email: email, | ||
password: password | ||
}).then(function (user) { | ||
_this.currentUser = user; | ||
}).then((user) => { | ||
this.currentUser = user; | ||
resolve(user); | ||
}).catch(function (err) { return reject(err); }); | ||
}).catch(err => reject(err)); | ||
}); | ||
}; | ||
Auth.prototype.updateEmail = function (newEmail) { | ||
return new Promise(function (resolve, reject) { | ||
} | ||
updateEmail(newEmail) { | ||
return new Promise((resolve, reject) => { | ||
firebase.updateEmail(newEmail) | ||
.then(function () { return resolve(); }) | ||
.catch(function (err) { return reject(err); }); | ||
.then(() => resolve()) | ||
.catch(err => reject(err)); | ||
}); | ||
}; | ||
Auth.prototype.updatePassword = function (newPassword) { | ||
return new Promise(function (resolve, reject) { | ||
} | ||
updatePassword(newPassword) { | ||
return new Promise((resolve, reject) => { | ||
firebase.updatePassword(newPassword) | ||
.then(function () { return resolve(); }) | ||
.catch(function (err) { return reject(err); }); | ||
.then(() => resolve()) | ||
.catch(err => reject(err)); | ||
}); | ||
}; | ||
Auth.prototype.sendPasswordResetEmail = function (email) { | ||
return new Promise(function (resolve, reject) { | ||
} | ||
sendPasswordResetEmail(email) { | ||
return new Promise((resolve, reject) => { | ||
firebase.sendPasswordResetEmail(email) | ||
.then(function () { return resolve(); }) | ||
.catch(function (err) { return reject(err); }); | ||
.then(() => resolve()) | ||
.catch(err => reject(err)); | ||
}); | ||
}; | ||
Auth.prototype.fetchSignInMethodsForEmail = function (email) { | ||
} | ||
fetchSignInMethodsForEmail(email) { | ||
return firebase.fetchSignInMethodsForEmail(email); | ||
}; | ||
return Auth; | ||
}()); | ||
} | ||
} | ||
auth.Auth = Auth; | ||
})(auth = exports.auth || (exports.auth = {})); | ||
})(auth || (auth = {})); |
@@ -1,15 +0,11 @@ | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.database = void 0; | ||
var firebase = require("../../firebase"); | ||
var NextPushId_1 = require("./util/NextPushId"); | ||
var database; | ||
import * as firebase from "../../firebase"; | ||
import { nextPushId } from "./util/NextPushId"; | ||
export var database; | ||
(function (database) { | ||
var Query = (function () { | ||
function Query(path) { | ||
class Query { | ||
constructor(path) { | ||
this.path = path; | ||
} | ||
Query.prototype.on = function (eventType, callback, cancelCallbackOrContext, context) { | ||
var _this = this; | ||
var onValueEvent = function (result) { | ||
on(eventType, callback, cancelCallbackOrContext, context) { | ||
const onValueEvent = result => { | ||
if (result.error) { | ||
@@ -21,13 +17,13 @@ callback(result); | ||
key: result.key, | ||
val: function () { return result.value; }, | ||
exists: function () { return !!result.value; } | ||
val: () => result.value, | ||
exists: () => !!result.value | ||
}); | ||
} | ||
}; | ||
firebase.addValueEventListener(onValueEvent, this.path).then(function (result) { | ||
if (!Query.registeredListeners.has(_this.path)) { | ||
Query.registeredListeners.set(_this.path, []); | ||
firebase.addValueEventListener(onValueEvent, this.path).then((result) => { | ||
if (!Query.registeredListeners.has(this.path)) { | ||
Query.registeredListeners.set(this.path, []); | ||
} | ||
Query.registeredListeners.set(_this.path, Query.registeredListeners.get(_this.path).concat(result.listeners)); | ||
}, function (error) { | ||
Query.registeredListeners.set(this.path, Query.registeredListeners.get(this.path).concat(result.listeners)); | ||
}, error => { | ||
console.log("firebase.database().on error: " + error); | ||
@@ -40,37 +36,34 @@ }); | ||
return null; | ||
}; | ||
Query.prototype.off = function (eventType, callback, context) { | ||
var _this = this; | ||
} | ||
off(eventType, callback, context) { | ||
if (Query.registeredListeners.has(this.path)) { | ||
firebase.removeEventListeners(Query.registeredListeners.get(this.path), this.path).then(function (result) { return Query.registeredListeners.delete(_this.path); }, function (error) { return console.log("firebase.database().off error: " + error); }); | ||
firebase.removeEventListeners(Query.registeredListeners.get(this.path), this.path).then(result => Query.registeredListeners.delete(this.path), error => console.log("firebase.database().off error: " + error)); | ||
} | ||
Query.registeredCallbacks.delete(this.path); | ||
return null; | ||
}; | ||
Query.prototype.once = function (eventType, successCallback, failureCallbackOrContext, context) { | ||
var _this = this; | ||
return new Promise(function (resolve, reject) { | ||
firebase.getValue(_this.path).then(function (result) { | ||
} | ||
once(eventType, successCallback, failureCallbackOrContext, context) { | ||
return new Promise((resolve, reject) => { | ||
firebase.getValue(this.path).then(result => { | ||
resolve({ | ||
key: result.key, | ||
val: function () { return result.value; }, | ||
exists: function () { return !!result.value; } | ||
val: () => result.value, | ||
exists: () => !!result.value | ||
}); | ||
}); | ||
}); | ||
}; | ||
Query.prototype.getOnValueEventHandler = function () { | ||
var _this = this; | ||
return function (result) { | ||
var callbacks = Query.registeredCallbacks.get(_this.path); | ||
callbacks && callbacks.map(function (callback) { | ||
} | ||
getOnValueEventHandler() { | ||
return result => { | ||
const callbacks = Query.registeredCallbacks.get(this.path); | ||
callbacks && callbacks.map(callback => { | ||
callback({ | ||
key: result.key, | ||
val: function () { return result.value; }, | ||
exists: function () { return !!result.value; } | ||
val: () => result.value, | ||
exists: () => !!result.value | ||
}); | ||
}); | ||
}; | ||
}; | ||
Query.prototype.orderByChild = function (child) { | ||
} | ||
orderByChild(child) { | ||
firebase.query(this.getOnValueEventHandler(), this.path, { | ||
@@ -83,4 +76,4 @@ orderBy: { | ||
return this; | ||
}; | ||
Query.prototype.orderByKey = function () { | ||
} | ||
orderByKey() { | ||
firebase.query(this.getOnValueEventHandler(), this.path, { | ||
@@ -92,4 +85,4 @@ orderBy: { | ||
return this; | ||
}; | ||
Query.prototype.orderByPriority = function () { | ||
} | ||
orderByPriority() { | ||
firebase.query(this.getOnValueEventHandler(), this.path, { | ||
@@ -101,4 +94,4 @@ orderBy: { | ||
return this; | ||
}; | ||
Query.prototype.orderByValue = function () { | ||
} | ||
orderByValue() { | ||
firebase.query(this.getOnValueEventHandler(), this.path, { | ||
@@ -110,14 +103,9 @@ orderBy: { | ||
return this; | ||
}; | ||
Query.registeredListeners = new Map(); | ||
Query.registeredCallbacks = new Map(); | ||
return Query; | ||
}()); | ||
} | ||
} | ||
Query.registeredListeners = new Map(); | ||
Query.registeredCallbacks = new Map(); | ||
database.Query = Query; | ||
var Reference = (function (_super) { | ||
__extends(Reference, _super); | ||
function Reference() { | ||
return _super !== null && _super.apply(this, arguments) || this; | ||
} | ||
Reference.prototype.getKey = function () { | ||
class Reference extends Query { | ||
getKey() { | ||
if (!this.path) { | ||
@@ -129,17 +117,12 @@ return null; | ||
} | ||
}; | ||
Object.defineProperty(Reference.prototype, "key", { | ||
get: function () { | ||
return this.getKey(); | ||
}, | ||
enumerable: false, | ||
configurable: true | ||
}); | ||
Reference.prototype.set = function (value, onComplete) { | ||
var _this = this; | ||
return new Promise(function (resolve, reject) { | ||
firebase.setValue(_this.path, value).then(function () { | ||
} | ||
get key() { | ||
return this.getKey(); | ||
} | ||
set(value, onComplete) { | ||
return new Promise((resolve, reject) => { | ||
firebase.setValue(this.path, value).then(() => { | ||
onComplete && onComplete(null); | ||
resolve(null); | ||
}).catch(function (err) { | ||
}).catch(err => { | ||
onComplete && onComplete(err); | ||
@@ -149,14 +132,14 @@ reject(err); | ||
}); | ||
}; | ||
Reference.prototype.child = function (path) { | ||
return new Reference(this.path ? this.path + "/" + path : path); | ||
}; | ||
Reference.prototype.push = function (value, onComplete) { | ||
var now = new Date().getTime(); | ||
var name = NextPushId_1.nextPushId(now); | ||
var thennablePushRef = this.child(name); | ||
var pushRef = this.child(name); | ||
var promise; | ||
} | ||
child(path) { | ||
return new Reference(this.path ? `${this.path}/${path}` : path); | ||
} | ||
push(value, onComplete) { | ||
const now = new Date().getTime(); | ||
const name = nextPushId(now); | ||
const thennablePushRef = this.child(name); | ||
const pushRef = this.child(name); | ||
let promise; | ||
if (value != null) { | ||
promise = thennablePushRef.set(value, onComplete).then(function () { return pushRef; }); | ||
promise = thennablePushRef.set(value, onComplete).then(() => pushRef); | ||
} | ||
@@ -169,14 +152,13 @@ else { | ||
if (typeof onComplete === 'function') { | ||
promise.catch(function () { | ||
promise.catch(() => { | ||
}); | ||
} | ||
return thennablePushRef; | ||
}; | ||
Reference.prototype.remove = function (onComplete) { | ||
var _this = this; | ||
return new Promise(function (resolve, reject) { | ||
firebase.remove(_this.path).then(function () { | ||
} | ||
remove(onComplete) { | ||
return new Promise((resolve, reject) => { | ||
firebase.remove(this.path).then(() => { | ||
onComplete && onComplete(null); | ||
resolve(null); | ||
}).catch(function (err) { | ||
}).catch(err => { | ||
onComplete && onComplete(err); | ||
@@ -186,21 +168,17 @@ reject(err); | ||
}); | ||
}; | ||
Reference.prototype.onDisconnect = function () { | ||
} | ||
onDisconnect() { | ||
return firebase.onDisconnect(this.path); | ||
}; | ||
Reference.prototype.transaction = function (transactionUpdate, onComplete, applyLocally) { | ||
} | ||
transaction(transactionUpdate, onComplete, applyLocally) { | ||
return firebase.transaction(this.path, transactionUpdate, onComplete); | ||
}; | ||
return Reference; | ||
}(Query)); | ||
} | ||
} | ||
database.Reference = Reference; | ||
var Database = (function () { | ||
function Database() { | ||
class Database { | ||
ref(path) { | ||
return new Reference(path); | ||
} | ||
Database.prototype.ref = function (path) { | ||
return new Reference(path); | ||
}; | ||
return Database; | ||
}()); | ||
} | ||
database.Database = Database; | ||
})(database = exports.database || (exports.database = {})); | ||
})(database || (database = {})); |
@@ -1,13 +0,10 @@ | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.nextPushId = void 0; | ||
exports.nextPushId = (function () { | ||
var PUSH_CHARS = '-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz'; | ||
var lastPushTime = 0; | ||
var lastRandChars = []; | ||
export const nextPushId = (function () { | ||
const PUSH_CHARS = '-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz'; | ||
let lastPushTime = 0; | ||
const lastRandChars = []; | ||
return function (now) { | ||
var duplicateTime = now === lastPushTime; | ||
const duplicateTime = now === lastPushTime; | ||
lastPushTime = now; | ||
var i; | ||
var timeStampChars = new Array(8); | ||
let i; | ||
const timeStampChars = new Array(8); | ||
for (i = 7; i >= 0; i--) { | ||
@@ -17,3 +14,3 @@ timeStampChars[i] = PUSH_CHARS.charAt(now % 64); | ||
} | ||
var id = timeStampChars.join(''); | ||
let id = timeStampChars.join(''); | ||
if (!duplicateTime) { | ||
@@ -20,0 +17,0 @@ for (i = 0; i < 12; i++) { |
@@ -1,60 +0,42 @@ | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.firestore = void 0; | ||
var firebase = require("../../firebase"); | ||
var firestore; | ||
import * as firebase from "../../firebase"; | ||
export var firestore; | ||
(function (firestore) { | ||
var Firestore = (function () { | ||
function Firestore() { | ||
class Firestore { | ||
collection(collectionPath) { | ||
return firebase.firestore.collection(collectionPath); | ||
} | ||
Firestore.prototype.collection = function (collectionPath) { | ||
return firebase.firestore.collection(collectionPath); | ||
}; | ||
Firestore.prototype.collectionGroup = function (id) { | ||
collectionGroup(id) { | ||
return firebase.firestore.collectionGroup(id); | ||
}; | ||
Firestore.prototype.doc = function (path) { | ||
} | ||
doc(path) { | ||
return firebase.firestore.docRef(path); | ||
}; | ||
Firestore.prototype.FieldValue = function () { | ||
} | ||
FieldValue() { | ||
return { | ||
type: undefined, | ||
value: undefined, | ||
serverTimestamp: function () { return "SERVER_TIMESTAMP"; }, | ||
delete: function () { return "DELETE_FIELD"; }, | ||
arrayUnion: function () { | ||
var elements = []; | ||
for (var _i = 0; _i < arguments.length; _i++) { | ||
elements[_i] = arguments[_i]; | ||
} | ||
return new firebase.firestore.FieldValue("ARRAY_UNION", elements); | ||
}, | ||
arrayRemove: function () { | ||
var elements = []; | ||
for (var _i = 0; _i < arguments.length; _i++) { | ||
elements[_i] = arguments[_i]; | ||
} | ||
return new firebase.firestore.FieldValue("ARRAY_REMOVE", elements); | ||
}, | ||
increment: function (n) { return new firebase.firestore.FieldValue("INCREMENT", n); } | ||
serverTimestamp: () => "SERVER_TIMESTAMP", | ||
delete: () => "DELETE_FIELD", | ||
arrayUnion: (...elements) => new firebase.firestore.FieldValue("ARRAY_UNION", elements), | ||
arrayRemove: (...elements) => new firebase.firestore.FieldValue("ARRAY_REMOVE", elements), | ||
increment: (n) => new firebase.firestore.FieldValue("INCREMENT", n) | ||
}; | ||
}; | ||
Firestore.prototype.GeoPoint = function (latitude, longitude) { | ||
} | ||
GeoPoint(latitude, longitude) { | ||
return firebase.firestore.GeoPoint(latitude, longitude); | ||
}; | ||
Firestore.prototype.runTransaction = function (updateFunction) { | ||
} | ||
runTransaction(updateFunction) { | ||
return firebase.firestore.runTransaction(updateFunction); | ||
}; | ||
Firestore.prototype.batch = function () { | ||
} | ||
batch() { | ||
return firebase.firestore.batch(); | ||
}; | ||
Firestore.prototype.settings = function (settings) { | ||
} | ||
settings(settings) { | ||
firebase.firestore.settings(settings); | ||
}; | ||
Firestore.prototype.clearPersistence = function () { | ||
} | ||
clearPersistence() { | ||
return firebase.firestore.clearPersistence(); | ||
}; | ||
return Firestore; | ||
}()); | ||
} | ||
} | ||
firestore.Firestore = Firestore; | ||
})(firestore = exports.firestore || (exports.firestore = {})); | ||
})(firestore || (firestore = {})); |
@@ -1,16 +0,10 @@ | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.functions = void 0; | ||
var firebase = require("../../firebase"); | ||
var functions; | ||
import * as firebase from "../../firebase"; | ||
export var functions; | ||
(function (functions) { | ||
var Functions = (function () { | ||
function Functions() { | ||
class Functions { | ||
httpsCallable(functionName, region) { | ||
return firebase.functions.httpsCallable(functionName, region); | ||
} | ||
Functions.prototype.httpsCallable = function (functionName, region) { | ||
return firebase.functions.httpsCallable(functionName, region); | ||
}; | ||
return Functions; | ||
}()); | ||
} | ||
functions.Functions = Functions; | ||
})(functions = exports.functions || (exports.functions = {})); | ||
})(functions || (functions = {})); |
@@ -1,16 +0,12 @@ | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.storage = exports.functions = exports.firestore = exports.database = exports.auth = exports.initializeApp = void 0; | ||
var firebase = require("../firebase"); | ||
var auth_1 = require("./auth"); | ||
var database_1 = require("./database"); | ||
var firestore_1 = require("./firestore"); | ||
var storage_1 = require("./storage"); | ||
var functions_1 = require("./functions"); | ||
function initializeApp(options, name) { | ||
import * as firebase from "../firebase"; | ||
import { auth as firebaseAuthModule } from "./auth"; | ||
import { database as firebaseDatabaseModule } from "./database"; | ||
import { firestore as firebaseFirestoreModule } from "./firestore"; | ||
import { storage as firebaseStorageModule } from "./storage"; | ||
import { functions as firebaseFunctionsModule } from "./functions"; | ||
export function initializeApp(options, name) { | ||
return firebase.init(options); | ||
} | ||
exports.initializeApp = initializeApp; | ||
var authCache; | ||
function auth(app) { | ||
let authCache; | ||
export function auth(app) { | ||
if (app) { | ||
@@ -20,9 +16,8 @@ console.log("The 'app' param is ignored at the moment."); | ||
if (!authCache) { | ||
authCache = new auth_1.auth.Auth(); | ||
authCache = new firebaseAuthModule.Auth(); | ||
} | ||
return authCache; | ||
} | ||
exports.auth = auth; | ||
var dbCache; | ||
function database(app) { | ||
let dbCache; | ||
export function database(app) { | ||
if (app) { | ||
@@ -32,9 +27,8 @@ console.log("The 'app' param is ignored at the moment."); | ||
if (!dbCache) { | ||
dbCache = new database_1.database.Database(); | ||
dbCache = new firebaseDatabaseModule.Database(); | ||
} | ||
return dbCache; | ||
} | ||
exports.database = database; | ||
var firestoreCache; | ||
function firestore(app) { | ||
let firestoreCache; | ||
export function firestore(app) { | ||
if (app) { | ||
@@ -44,8 +38,7 @@ console.log("The 'app' param is ignored at the moment."); | ||
if (!firestoreCache) { | ||
firestoreCache = new firestore_1.firestore.Firestore(); | ||
firestoreCache = new firebaseFirestoreModule.Firestore(); | ||
} | ||
return firestoreCache; | ||
} | ||
exports.firestore = firestore; | ||
var functionsCache; | ||
let functionsCache; | ||
(function (database) { | ||
@@ -56,4 +49,4 @@ function enableLogging(logger, persistent) { | ||
database.enableLogging = enableLogging; | ||
})(database = exports.database || (exports.database = {})); | ||
function functions(app) { | ||
})(database || (database = {})); | ||
export function functions(app) { | ||
if (app) { | ||
@@ -63,9 +56,8 @@ console.log("The 'app' param is ignored at the moment."); | ||
if (!functionsCache) { | ||
functionsCache = new functions_1.functions.Functions(); | ||
functionsCache = new firebaseFunctionsModule.Functions(); | ||
} | ||
return functionsCache; | ||
} | ||
exports.functions = functions; | ||
var storageCache; | ||
function storage(app) { | ||
let storageCache; | ||
export function storage(app) { | ||
if (app) { | ||
@@ -75,6 +67,5 @@ console.log("The 'app' param is ignored at the moment."); | ||
if (!storageCache) { | ||
storageCache = new storage_1.storage.Storage(); | ||
storageCache = new firebaseStorageModule.Storage(); | ||
} | ||
return storageCache; | ||
} | ||
exports.storage = storage; |
@@ -1,10 +0,7 @@ | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.storage = void 0; | ||
var file_system_1 = require("@nativescript/core/file-system"); | ||
var firebaseStorage = require("../../storage/storage"); | ||
var storage; | ||
import { File } from "@nativescript/core/file-system"; | ||
import * as firebaseStorage from "../../storage/storage"; | ||
export var storage; | ||
(function (storage) { | ||
var Reference = (function () { | ||
function Reference(path) { | ||
class Reference { | ||
constructor(path) { | ||
this.fullPath = this.path; | ||
@@ -19,37 +16,36 @@ this.path = path; | ||
} | ||
Reference.prototype.child = function (path) { | ||
return new Reference(this.path ? this.path + "/" + path : path); | ||
}; | ||
Reference.prototype.delete = function () { | ||
child(path) { | ||
return new Reference(this.path ? `${this.path}/${path}` : path); | ||
} | ||
delete() { | ||
return firebaseStorage.deleteFile({ | ||
remoteFullPath: this.path | ||
}); | ||
}; | ||
Reference.prototype.getDownloadURL = function () { | ||
} | ||
getDownloadURL() { | ||
return firebaseStorage.getDownloadUrl({ | ||
remoteFullPath: this.path | ||
}); | ||
}; | ||
Reference.prototype.getMetadata = function () { | ||
} | ||
getMetadata() { | ||
return firebaseStorage.getDownloadUrl({ | ||
remoteFullPath: this.path | ||
}); | ||
}; | ||
Reference.prototype.listAll = function () { | ||
} | ||
listAll() { | ||
return firebaseStorage.listAll({ | ||
remoteFullPath: this.path | ||
}); | ||
}; | ||
Reference.prototype.put = function (data, metadata) { | ||
var _this = this; | ||
return new Promise(function (resolve, reject) { | ||
} | ||
put(data, metadata) { | ||
return new Promise((resolve, reject) => { | ||
firebaseStorage.uploadFile({ | ||
localFile: data instanceof file_system_1.File ? data : undefined, | ||
localFullPath: !(data instanceof file_system_1.File) ? data : undefined, | ||
remoteFullPath: _this.path, | ||
onProgress: function (progress) { return console.log("Upload progress: " + progress.percentageCompleted + "% completed"); }, | ||
metadata: metadata | ||
}).then(function (result) { | ||
_this.getDownloadURL() | ||
.then(function (url) { | ||
localFile: data instanceof File ? data : undefined, | ||
localFullPath: !(data instanceof File) ? data : undefined, | ||
remoteFullPath: this.path, | ||
onProgress: progress => console.log(`Upload progress: ${progress.percentageCompleted}% completed`), | ||
metadata | ||
}).then((result) => { | ||
this.getDownloadURL() | ||
.then(url => { | ||
resolve({ | ||
@@ -60,6 +56,6 @@ downloadURL: url, | ||
}); | ||
}).catch(function (err) { return reject(err); }); | ||
}).catch(err => reject(err)); | ||
}); | ||
}; | ||
Reference.prototype.download = function (downloadToPath) { | ||
} | ||
download(downloadToPath) { | ||
return firebaseStorage.downloadFile({ | ||
@@ -69,15 +65,11 @@ localFullPath: downloadToPath, | ||
}); | ||
}; | ||
return Reference; | ||
}()); | ||
} | ||
} | ||
storage.Reference = Reference; | ||
var Storage = (function () { | ||
function Storage() { | ||
class Storage { | ||
ref() { | ||
return new Reference(); | ||
} | ||
Storage.prototype.ref = function () { | ||
return new Reference(); | ||
}; | ||
return Storage; | ||
}()); | ||
} | ||
storage.Storage = Storage; | ||
})(storage = exports.storage || (exports.storage = {})); | ||
})(storage || (storage = {})); |
@@ -1,4 +0,1 @@ | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.ENABLE_CRASHLYTICS_HINT = void 0; | ||
exports.ENABLE_CRASHLYTICS_HINT = "⚠️ You're calling a Crashlytics function but have not enabled it. Please add 'crashlytics: true' to 'firebase.nativescript.json' and remove the 'node_modules' and 'platforms' folders."; | ||
export const ENABLE_CRASHLYTICS_HINT = "⚠️ You're calling a Crashlytics function but have not enabled it. Please add 'crashlytics: true' to 'firebase.nativescript.json' and remove the 'node_modules' and 'platforms' folders."; |
@@ -1,7 +0,4 @@ | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.setCrashlyticsCollectionEnabled = exports.crash = exports.setUserId = exports.setDouble = exports.setInt = exports.setFloat = exports.setBool = exports.setString = exports.log = exports.sendCrashLog = void 0; | ||
var crashlytics_common_1 = require("./crashlytics-common"); | ||
var appModule = require("@nativescript/core/application"); | ||
function sendCrashLog(exception) { | ||
import { ENABLE_CRASHLYTICS_HINT } from "./crashlytics-common"; | ||
import * as appModule from '@nativescript/core/application'; | ||
export function sendCrashLog(exception) { | ||
if (isCrashlyticsAvailable()) { | ||
@@ -11,4 +8,3 @@ com.crashlytics.android.Crashlytics.logException(exception); | ||
} | ||
exports.sendCrashLog = sendCrashLog; | ||
function log(msg, tag, priority) { | ||
export function log(msg, tag, priority) { | ||
if (isCrashlyticsAvailable()) { | ||
@@ -23,4 +19,3 @@ if (tag && priority) { | ||
} | ||
exports.log = log; | ||
function setString(key, value) { | ||
export function setString(key, value) { | ||
if (isCrashlyticsAvailable()) { | ||
@@ -30,4 +25,3 @@ com.crashlytics.android.Crashlytics.setString(key, value); | ||
} | ||
exports.setString = setString; | ||
function setBool(key, value) { | ||
export function setBool(key, value) { | ||
if (isCrashlyticsAvailable()) { | ||
@@ -37,4 +31,3 @@ com.crashlytics.android.Crashlytics.setBool(key, value); | ||
} | ||
exports.setBool = setBool; | ||
function setFloat(key, value) { | ||
export function setFloat(key, value) { | ||
if (isCrashlyticsAvailable()) { | ||
@@ -44,4 +37,3 @@ com.crashlytics.android.Crashlytics.setFloat(key, value); | ||
} | ||
exports.setFloat = setFloat; | ||
function setInt(key, value) { | ||
export function setInt(key, value) { | ||
if (isCrashlyticsAvailable()) { | ||
@@ -51,4 +43,3 @@ com.crashlytics.android.Crashlytics.setInt(key, value); | ||
} | ||
exports.setInt = setInt; | ||
function setDouble(key, value) { | ||
export function setDouble(key, value) { | ||
if (isCrashlyticsAvailable()) { | ||
@@ -58,4 +49,3 @@ com.crashlytics.android.Crashlytics.setDouble(key, value); | ||
} | ||
exports.setDouble = setDouble; | ||
function setUserId(id) { | ||
export function setUserId(id) { | ||
if (isCrashlyticsAvailable()) { | ||
@@ -65,4 +55,3 @@ com.crashlytics.android.Crashlytics.setUserIdentifier(id); | ||
} | ||
exports.setUserId = setUserId; | ||
function crash() { | ||
export function crash() { | ||
if (isCrashlyticsAvailable()) { | ||
@@ -72,4 +61,3 @@ com.crashlytics.android.Crashlytics.getInstance().crash(); | ||
} | ||
exports.crash = crash; | ||
function setCrashlyticsCollectionEnabled(enabled) { | ||
export function setCrashlyticsCollectionEnabled(enabled) { | ||
if (isCrashlyticsAvailable()) { | ||
@@ -79,6 +67,5 @@ io.fabric.sdk.android.Fabric.with(appModule.getNativeApplication(), [new com.crashlytics.android.Crashlytics()]); | ||
} | ||
exports.setCrashlyticsCollectionEnabled = setCrashlyticsCollectionEnabled; | ||
function isCrashlyticsAvailable() { | ||
if (typeof (com.crashlytics) === "undefined" || typeof (com.crashlytics.android.Crashlytics) === "undefined") { | ||
console.log(crashlytics_common_1.ENABLE_CRASHLYTICS_HINT); | ||
console.log(ENABLE_CRASHLYTICS_HINT); | ||
return false; | ||
@@ -85,0 +72,0 @@ } |
@@ -1,6 +0,3 @@ | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.setCrashlyticsCollectionEnabled = exports.crash = exports.setUserId = exports.setDouble = exports.setInt = exports.setFloat = exports.setBool = exports.setString = exports.log = exports.sendCrashLog = void 0; | ||
var crashlytics_common_1 = require("./crashlytics-common"); | ||
function sendCrashLog(exception) { | ||
import { ENABLE_CRASHLYTICS_HINT } from "./crashlytics-common"; | ||
export function sendCrashLog(exception) { | ||
if (isCrashlyticsAvailable()) { | ||
@@ -10,4 +7,3 @@ Crashlytics.sharedInstance().recordError(exception); | ||
} | ||
exports.sendCrashLog = sendCrashLog; | ||
function log(msg, tag, priority) { | ||
export function log(msg, tag, priority) { | ||
if (isCrashlyticsAvailable()) { | ||
@@ -22,4 +18,3 @@ if (tag) { | ||
} | ||
exports.log = log; | ||
function setString(key, value) { | ||
export function setString(key, value) { | ||
if (isCrashlyticsAvailable()) { | ||
@@ -29,4 +24,3 @@ Crashlytics.sharedInstance().setObjectValueForKey(value, key); | ||
} | ||
exports.setString = setString; | ||
function setBool(key, value) { | ||
export function setBool(key, value) { | ||
if (isCrashlyticsAvailable()) { | ||
@@ -36,4 +30,3 @@ Crashlytics.sharedInstance().setBoolValueForKey(value, key); | ||
} | ||
exports.setBool = setBool; | ||
function setFloat(key, value) { | ||
export function setFloat(key, value) { | ||
if (isCrashlyticsAvailable()) { | ||
@@ -43,4 +36,3 @@ Crashlytics.sharedInstance().setFloatValueForKey(value, key); | ||
} | ||
exports.setFloat = setFloat; | ||
function setInt(key, value) { | ||
export function setInt(key, value) { | ||
if (isCrashlyticsAvailable()) { | ||
@@ -50,4 +42,3 @@ Crashlytics.sharedInstance().setIntValueForKey(value, key); | ||
} | ||
exports.setInt = setInt; | ||
function setDouble(key, value) { | ||
export function setDouble(key, value) { | ||
if (isCrashlyticsAvailable()) { | ||
@@ -57,4 +48,3 @@ Crashlytics.sharedInstance().setFloatValueForKey(value, key); | ||
} | ||
exports.setDouble = setDouble; | ||
function setUserId(id) { | ||
export function setUserId(id) { | ||
if (isCrashlyticsAvailable()) { | ||
@@ -64,4 +54,3 @@ Crashlytics.sharedInstance().setUserIdentifier(id); | ||
} | ||
exports.setUserId = setUserId; | ||
function crash() { | ||
export function crash() { | ||
if (isCrashlyticsAvailable()) { | ||
@@ -72,4 +61,3 @@ Crashlytics.sharedInstance().crash(); | ||
} | ||
exports.crash = crash; | ||
function setCrashlyticsCollectionEnabled(enabled) { | ||
export function setCrashlyticsCollectionEnabled(enabled) { | ||
if (isCrashlyticsAvailable()) { | ||
@@ -79,6 +67,5 @@ Fabric.with(NSArray.arrayWithObject(Crashlytics.class())); | ||
} | ||
exports.setCrashlyticsCollectionEnabled = setCrashlyticsCollectionEnabled; | ||
function isCrashlyticsAvailable() { | ||
if (typeof (Crashlytics) === "undefined") { | ||
console.log(crashlytics_common_1.ENABLE_CRASHLYTICS_HINT); | ||
console.log(ENABLE_CRASHLYTICS_HINT); | ||
return false; | ||
@@ -85,0 +72,0 @@ } |
@@ -1,5 +0,2 @@ | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.crashlytics = void 0; | ||
var crashlytz = require("./crashlytics"); | ||
exports.crashlytics = crashlytz; | ||
import * as crashlytz from "./crashlytics"; | ||
export const crashlytics = crashlytz; |
@@ -1,46 +0,27 @@ | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.isDocumentReference = exports.DocumentSnapshot = exports.firebase = exports.GeoPoint = exports.FieldValue = void 0; | ||
var dialogs_1 = require("@nativescript/core/ui/dialogs"); | ||
var application_settings_1 = require("@nativescript/core/application-settings"); | ||
var admob = require("./admob/admob"); | ||
var analytics = require("./analytics/analytics"); | ||
var crashlytics = require("./crashlytics/crashlytics"); | ||
var performance = require("./performance/performance"); | ||
var storage = require("./storage/storage"); | ||
var mlkit = require("./mlkit"); | ||
var FieldValue = (function () { | ||
function FieldValue(type, value) { | ||
import { prompt } from "@nativescript/core/ui/dialogs"; | ||
import { getString, setString } from "@nativescript/core/application-settings"; | ||
import * as admob from "./admob/admob"; | ||
import * as analytics from "./analytics/analytics"; | ||
import * as crashlytics from "./crashlytics/crashlytics"; | ||
import * as performance from "./performance/performance"; | ||
import * as storage from "./storage/storage"; | ||
import * as mlkit from "./mlkit"; | ||
export class FieldValue { | ||
constructor(type, value) { | ||
this.type = type; | ||
this.value = value; | ||
} | ||
FieldValue.serverTimestamp = function () { return "SERVER_TIMESTAMP"; }; | ||
FieldValue.delete = function () { return "DELETE_FIELD"; }; | ||
FieldValue.arrayUnion = function () { | ||
var elements = []; | ||
for (var _i = 0; _i < arguments.length; _i++) { | ||
elements[_i] = arguments[_i]; | ||
} | ||
return new FieldValue("ARRAY_UNION", elements); | ||
}; | ||
FieldValue.arrayRemove = function () { | ||
var elements = []; | ||
for (var _i = 0; _i < arguments.length; _i++) { | ||
elements[_i] = arguments[_i]; | ||
} | ||
return new FieldValue("ARRAY_REMOVE", elements); | ||
}; | ||
FieldValue.increment = function (n) { return new exports.firebase.firestore.FieldValue("INCREMENT", n); }; | ||
return FieldValue; | ||
}()); | ||
exports.FieldValue = FieldValue; | ||
var GeoPoint = (function () { | ||
function GeoPoint(latitude, longitude) { | ||
} | ||
FieldValue.serverTimestamp = () => "SERVER_TIMESTAMP"; | ||
FieldValue.delete = () => "DELETE_FIELD"; | ||
FieldValue.arrayUnion = (...elements) => new FieldValue("ARRAY_UNION", elements); | ||
FieldValue.arrayRemove = (...elements) => new FieldValue("ARRAY_REMOVE", elements); | ||
FieldValue.increment = (n) => new firebase.firestore.FieldValue("INCREMENT", n); | ||
export class GeoPoint { | ||
constructor(latitude, longitude) { | ||
this.latitude = latitude; | ||
this.longitude = longitude; | ||
} | ||
return GeoPoint; | ||
}()); | ||
exports.GeoPoint = GeoPoint; | ||
exports.firebase = { | ||
} | ||
export const firebase = { | ||
initialized: false, | ||
@@ -53,11 +34,11 @@ instance: null, | ||
_dynamicLinkCallback: null, | ||
admob: admob, | ||
analytics: analytics, | ||
crashlytics: crashlytics, | ||
performance: performance, | ||
storage: storage, | ||
mlkit: mlkit, | ||
admob, | ||
analytics, | ||
crashlytics, | ||
performance, | ||
storage, | ||
mlkit, | ||
firestore: { | ||
FieldValue: FieldValue, | ||
GeoPoint: function (latitude, longitude) { return new GeoPoint(latitude, longitude); } | ||
FieldValue, | ||
GeoPoint: (latitude, longitude) => new GeoPoint(latitude, longitude) | ||
}, | ||
@@ -104,12 +85,12 @@ dynamicLinks: { | ||
}, | ||
addAuthStateListener: function (listener) { | ||
if (exports.firebase.authStateListeners.indexOf(listener) === -1) { | ||
exports.firebase.authStateListeners.push(listener); | ||
addAuthStateListener: listener => { | ||
if (firebase.authStateListeners.indexOf(listener) === -1) { | ||
firebase.authStateListeners.push(listener); | ||
} | ||
return true; | ||
}, | ||
removeAuthStateListener: function (listener) { | ||
var index = exports.firebase.authStateListeners.indexOf(listener); | ||
removeAuthStateListener: listener => { | ||
const index = firebase.authStateListeners.indexOf(listener); | ||
if (index >= 0) { | ||
exports.firebase.authStateListeners.splice(index, 1); | ||
firebase.authStateListeners.splice(index, 1); | ||
return true; | ||
@@ -121,7 +102,7 @@ } | ||
}, | ||
hasAuthStateListener: function (listener) { | ||
return exports.firebase.authStateListeners.indexOf(listener) >= 0; | ||
hasAuthStateListener: listener => { | ||
return firebase.authStateListeners.indexOf(listener) >= 0; | ||
}, | ||
notifyAuthStateListeners: function (data) { | ||
exports.firebase.authStateListeners.forEach(function (listener) { | ||
notifyAuthStateListeners: data => { | ||
firebase.authStateListeners.forEach(listener => { | ||
try { | ||
@@ -143,9 +124,9 @@ if (listener.thisArg) { | ||
}, | ||
rememberEmailForEmailLinkLogin: function (email) { | ||
application_settings_1.setString("FirebasePlugin.EmailLinkLogin", email); | ||
rememberEmailForEmailLinkLogin: (email) => { | ||
setString("FirebasePlugin.EmailLinkLogin", email); | ||
}, | ||
getRememberedEmailForEmailLinkLogin: function () { | ||
return application_settings_1.getString("FirebasePlugin.EmailLinkLogin"); | ||
getRememberedEmailForEmailLinkLogin: () => { | ||
return getString("FirebasePlugin.EmailLinkLogin"); | ||
}, | ||
strongTypeify: function (value) { | ||
strongTypeify: value => { | ||
if (value === "true") { | ||
@@ -165,8 +146,8 @@ value = true; | ||
}, | ||
requestPhoneAuthVerificationCode: function (onUserResponse, verificationPrompt) { | ||
requestPhoneAuthVerificationCode: (onUserResponse, verificationPrompt) => { | ||
if (verificationPrompt.promise) { | ||
verificationPrompt.promise().then(function (result) { return onUserResponse(result); }); | ||
verificationPrompt.promise().then(result => onUserResponse(result)); | ||
} | ||
else { | ||
dialogs_1.prompt(verificationPrompt || "Verification code").then(function (promptResult) { | ||
prompt(verificationPrompt || "Verification code").then(promptResult => { | ||
if (!promptResult.result) { | ||
@@ -181,3 +162,3 @@ onUserResponse(undefined); | ||
}, | ||
moveLoginOptionsToObjects: function (loginOptions) { | ||
moveLoginOptionsToObjects: loginOptions => { | ||
if (loginOptions.email) { | ||
@@ -229,7 +210,7 @@ console.log("Please update your code: the 'email' property is deprecated and now expected at 'passwordOptions.email'"); | ||
}, | ||
merge: function (obj1, obj2) { | ||
var result = {}; | ||
for (var i in obj1) { | ||
merge: (obj1, obj2) => { | ||
const result = {}; | ||
for (let i in obj1) { | ||
if ((i in obj2) && (typeof obj1[i] === "object") && (i !== null)) { | ||
result[i] = exports.firebase.merge(obj1[i], obj2[i]); | ||
result[i] = firebase.merge(obj1[i], obj2[i]); | ||
} | ||
@@ -240,3 +221,3 @@ else { | ||
} | ||
for (var i in obj2) { | ||
for (let i in obj2) { | ||
if (i in result) { | ||
@@ -250,15 +231,12 @@ continue; | ||
}; | ||
var DocumentSnapshot = (function () { | ||
function DocumentSnapshot(id, exists, documentData, ref) { | ||
export class DocumentSnapshot { | ||
constructor(id, exists, documentData, ref) { | ||
this.id = id; | ||
this.exists = exists; | ||
this.ref = ref; | ||
this.data = function () { return exists ? documentData : undefined; }; | ||
this.data = () => exists ? documentData : undefined; | ||
} | ||
return DocumentSnapshot; | ||
}()); | ||
exports.DocumentSnapshot = DocumentSnapshot; | ||
function isDocumentReference(object) { | ||
} | ||
export function isDocumentReference(object) { | ||
return object && object.discriminator === "docRef"; | ||
} | ||
exports.isDocumentReference = isDocumentReference; |
@@ -1,18 +0,14 @@ | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.useFunctionsEmulator = exports.httpsCallable = void 0; | ||
var firebase_common_1 = require("../firebase-common"); | ||
function httpsCallable(functionName, region) { | ||
if (region === void 0) { region = "us-central1"; } | ||
var instance = com.google.firebase.functions.FirebaseFunctions.getInstance(region); | ||
return function (data) { return new Promise(function (resolve, reject) { | ||
var actData = firebase_common_1.firebase.toValue(data); | ||
import { firebase as firebaseCommon } from "../firebase-common"; | ||
export function httpsCallable(functionName, region = "us-central1") { | ||
const instance = com.google.firebase.functions.FirebaseFunctions.getInstance(region); | ||
return (data) => new Promise((resolve, reject) => { | ||
const actData = firebaseCommon.toValue(data); | ||
return instance.getHttpsCallable(functionName) | ||
.call(actData) | ||
.continueWith(new com.google.android.gms.tasks.Continuation({ | ||
then: function (task) { | ||
then: (task) => { | ||
try { | ||
var result = task.getResult(); | ||
var resultData = result.getData(); | ||
resolve(firebase_common_1.firebase.toJsObject(resultData)); | ||
const result = task.getResult(); | ||
const resultData = result.getData(); | ||
resolve(firebaseCommon.toJsObject(resultData)); | ||
} | ||
@@ -25,9 +21,7 @@ catch (e) { | ||
})); | ||
}); }; | ||
}); | ||
} | ||
exports.httpsCallable = httpsCallable; | ||
function useFunctionsEmulator(origin) { | ||
export function useFunctionsEmulator(origin) { | ||
com.google.firebase.functions.FirebaseFunctions.getInstance() | ||
.useFunctionsEmulator(origin); | ||
} | ||
exports.useFunctionsEmulator = useFunctionsEmulator; |
@@ -1,6 +0,3 @@ | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.useFunctionsEmulator = exports.httpsCallable = void 0; | ||
var utils_1 = require("../utils"); | ||
var functions; | ||
import { firebaseUtils } from '../utils'; | ||
let functions; | ||
function getFunctions(region) { | ||
@@ -12,7 +9,7 @@ if (!functions) { | ||
} | ||
function httpsCallable(functionName, region) { | ||
var functions = getFunctions(region); | ||
return function (data) { return new Promise(function (resolve, reject) { | ||
var callable = functions.HTTPSCallableWithName(functionName); | ||
var handleCompletion = function (result, err) { | ||
export function httpsCallable(functionName, region) { | ||
const functions = getFunctions(region); | ||
return (data) => new Promise((resolve, reject) => { | ||
const callable = functions.HTTPSCallableWithName(functionName); | ||
const handleCompletion = (result, err) => { | ||
if (err) { | ||
@@ -23,3 +20,3 @@ reject(err.localizedDescription); | ||
if (result) { | ||
resolve(utils_1.firebaseUtils.toJsObject(result.data)); | ||
resolve(firebaseUtils.toJsObject(result.data)); | ||
} | ||
@@ -33,9 +30,7 @@ }; | ||
} | ||
}); }; | ||
}); | ||
} | ||
exports.httpsCallable = httpsCallable; | ||
function useFunctionsEmulator(origin) { | ||
var functions = getFunctions(); | ||
export function useFunctionsEmulator(origin) { | ||
const functions = getFunctions(); | ||
functions.useFunctionsEmulatorOrigin(origin); | ||
} | ||
exports.useFunctionsEmulator = useFunctionsEmulator; |
@@ -1,5 +0,2 @@ | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.functions = void 0; | ||
var callableFns = require("./functions"); | ||
exports.functions = callableFns; | ||
import * as callableFns from "./functions"; | ||
export const functions = callableFns; |
@@ -1,7 +0,4 @@ | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.triggerEvent = exports.onMessageImpression = exports.onMessageClicked = void 0; | ||
function onMessageClicked(callback) { | ||
var listener = new com.google.firebase.inappmessaging.FirebaseInAppMessagingClickListener({ | ||
messageClicked: function (message, action) { | ||
export function onMessageClicked(callback) { | ||
const listener = new com.google.firebase.inappmessaging.FirebaseInAppMessagingClickListener({ | ||
messageClicked: (message, action) => { | ||
callback({ | ||
@@ -14,6 +11,5 @@ campaignName: message.getCampaignName() | ||
} | ||
exports.onMessageClicked = onMessageClicked; | ||
function onMessageImpression(callback) { | ||
var listener = new com.google.firebase.inappmessaging.FirebaseInAppMessagingImpressionListener({ | ||
impressionDetected: function (message) { | ||
export function onMessageImpression(callback) { | ||
const listener = new com.google.firebase.inappmessaging.FirebaseInAppMessagingImpressionListener({ | ||
impressionDetected: (message) => { | ||
callback({ | ||
@@ -26,6 +22,4 @@ campaignName: message.getCampaignName() | ||
} | ||
exports.onMessageImpression = onMessageImpression; | ||
function triggerEvent(eventName) { | ||
export function triggerEvent(eventName) { | ||
com.google.firebase.inappmessaging.FirebaseInAppMessaging.getInstance().triggerEvent(eventName); | ||
} | ||
exports.triggerEvent = triggerEvent; |
@@ -1,19 +0,13 @@ | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.triggerEvent = exports.onMessageImpression = exports.onMessageClicked = void 0; | ||
var _firInAppMessagingDisplayDelegate; | ||
function onMessageClicked(callback) { | ||
let _firInAppMessagingDisplayDelegate; | ||
export function onMessageClicked(callback) { | ||
ensureDelegate(); | ||
_firInAppMessagingDisplayDelegate.setOnMessageClickedCallback(callback); | ||
} | ||
exports.onMessageClicked = onMessageClicked; | ||
function onMessageImpression(callback) { | ||
export function onMessageImpression(callback) { | ||
ensureDelegate(); | ||
_firInAppMessagingDisplayDelegate.setOnMessageImpressionCallback(callback); | ||
} | ||
exports.onMessageImpression = onMessageImpression; | ||
function triggerEvent(eventName) { | ||
export function triggerEvent(eventName) { | ||
FIRInAppMessaging.inAppMessaging().triggerEvent(eventName); | ||
} | ||
exports.triggerEvent = triggerEvent; | ||
function ensureDelegate() { | ||
@@ -24,23 +18,19 @@ if (!_firInAppMessagingDisplayDelegate) { | ||
} | ||
var FIRInAppMessagingDisplayDelegateImpl = (function (_super) { | ||
__extends(FIRInAppMessagingDisplayDelegateImpl, _super); | ||
function FIRInAppMessagingDisplayDelegateImpl() { | ||
return _super !== null && _super.apply(this, arguments) || this; | ||
} | ||
FIRInAppMessagingDisplayDelegateImpl.new = function () { | ||
class FIRInAppMessagingDisplayDelegateImpl extends NSObject { | ||
static new() { | ||
if (FIRInAppMessagingDisplayDelegateImpl.ObjCProtocols.length === 0 && typeof (FIRInAppMessagingDisplayDelegate) !== "undefined") { | ||
FIRInAppMessagingDisplayDelegateImpl.ObjCProtocols.push(FIRInAppMessagingDisplayDelegate); | ||
} | ||
return _super.new.call(this); | ||
}; | ||
FIRInAppMessagingDisplayDelegateImpl.prototype.setOnMessageClickedCallback = function (callback) { | ||
return super.new(); | ||
} | ||
setOnMessageClickedCallback(callback) { | ||
this.onMessageClickedCallback = callback; | ||
}; | ||
FIRInAppMessagingDisplayDelegateImpl.prototype.setOnMessageImpressionCallback = function (callback) { | ||
} | ||
setOnMessageImpressionCallback(callback) { | ||
this.onMessageImpressionCallback = callback; | ||
}; | ||
FIRInAppMessagingDisplayDelegateImpl.prototype.displayErrorForMessageError = function (inAppMessage, error) { | ||
} | ||
displayErrorForMessageError(inAppMessage, error) { | ||
console.log("InAppMessaging error: " + error.localizedDescription); | ||
}; | ||
FIRInAppMessagingDisplayDelegateImpl.prototype.impressionDetectedForMessage = function (inAppMessage) { | ||
} | ||
impressionDetectedForMessage(inAppMessage) { | ||
console.log("InAppMessaging impression"); | ||
@@ -50,4 +40,4 @@ this.onMessageImpressionCallback && this.onMessageImpressionCallback({ | ||
}); | ||
}; | ||
FIRInAppMessagingDisplayDelegateImpl.prototype.messageClicked = function (inAppMessage) { | ||
} | ||
messageClicked(inAppMessage) { | ||
console.log("InAppMessaging clicked"); | ||
@@ -57,4 +47,4 @@ this.onMessageClickedCallback && this.onMessageClickedCallback({ | ||
}); | ||
}; | ||
FIRInAppMessagingDisplayDelegateImpl.prototype.messageClickedWithAction = function (inAppMessage, action) { | ||
} | ||
messageClickedWithAction(inAppMessage, action) { | ||
console.log("InAppMessaging clicked with action, text: " + action.actionText + ", url: " + action.actionURL); | ||
@@ -66,8 +56,7 @@ this.onMessageClickedCallback && this.onMessageClickedCallback({ | ||
}); | ||
}; | ||
FIRInAppMessagingDisplayDelegateImpl.prototype.messageDismissedDismissType = function (inAppMessage, dismissType) { | ||
} | ||
messageDismissedDismissType(inAppMessage, dismissType) { | ||
console.log("InAppMessaging dismissed"); | ||
}; | ||
FIRInAppMessagingDisplayDelegateImpl.ObjCProtocols = []; | ||
return FIRInAppMessagingDisplayDelegateImpl; | ||
}(NSObject)); | ||
} | ||
} | ||
FIRInAppMessagingDisplayDelegateImpl.ObjCProtocols = []; |
@@ -1,5 +0,2 @@ | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.inappmessaging = void 0; | ||
var inappmessage = require("./inappmessaging"); | ||
exports.inappmessaging = inappmessage; | ||
import * as inappmessage from "./inappmessaging"; | ||
export const inappmessaging = inappmessage; |
@@ -1,5 +0,2 @@ | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.messaging = void 0; | ||
var msging = require("./messaging"); | ||
exports.messaging = msging; | ||
import * as msging from "./messaging"; | ||
export const messaging = msging; |
@@ -1,17 +0,14 @@ | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.areNotificationsEnabled = exports.unsubscribeFromTopic = exports.subscribeToTopic = exports.unregisterForPushNotifications = exports.registerForPushNotifications = exports.addOnPushTokenReceivedCallback = exports.addOnMessageReceivedCallback = exports.getCurrentPushToken = exports.registerForInteractivePush = exports.onAppModuleResumeEvent = exports.onAppModuleLaunchEvent = exports.initFirebaseMessaging = void 0; | ||
var firebase_common_1 = require("../firebase-common"); | ||
var appModule = require("@nativescript/core/application"); | ||
var application = require("@nativescript/core/application"); | ||
var NotificationManagerCompatClass = useAndroidX() ? global.androidx.core.app.NotificationManagerCompat : android.support.v4.app.NotificationManagerCompat; | ||
var _launchNotification = null; | ||
var _senderId = null; | ||
import { firebase } from "../firebase-common"; | ||
import * as appModule from "@nativescript/core/application"; | ||
import * as application from "@nativescript/core/application"; | ||
const NotificationManagerCompatClass = useAndroidX() ? global.androidx.core.app.NotificationManagerCompat : android.support.v4.app.NotificationManagerCompat; | ||
let _launchNotification = null; | ||
let _senderId = null; | ||
function getSenderId() { | ||
return new Promise(function (resolve, reject) { | ||
return new Promise((resolve, reject) => { | ||
if (_senderId !== null) { | ||
resolve(_senderId); | ||
} | ||
var setSenderIdAndResolve = function () { | ||
var senderIdResourceId = application.android.context.getResources().getIdentifier("gcm_defaultSenderId", "string", application.android.context.getPackageName()); | ||
const setSenderIdAndResolve = () => { | ||
const senderIdResourceId = application.android.context.getResources().getIdentifier("gcm_defaultSenderId", "string", application.android.context.getPackageName()); | ||
if (senderIdResourceId === 0) { | ||
@@ -24,3 +21,3 @@ throw new Error("####################### Seems like you did not include 'google-services.json' in your project! Firebase Messaging will not work properly. #######################"); | ||
if (!application.android.context) { | ||
appModule.on(appModule.launchEvent, function () { return setSenderIdAndResolve(); }); | ||
appModule.on(appModule.launchEvent, () => setSenderIdAndResolve()); | ||
} | ||
@@ -32,3 +29,3 @@ else { | ||
} | ||
function initFirebaseMessaging(options) { | ||
export function initFirebaseMessaging(options) { | ||
if (!options) { | ||
@@ -44,30 +41,28 @@ return; | ||
} | ||
exports.initFirebaseMessaging = initFirebaseMessaging; | ||
function onAppModuleLaunchEvent(args) { | ||
export function onAppModuleLaunchEvent(args) { | ||
org.nativescript.plugins.firebase.FirebasePluginLifecycleCallbacks.registerCallbacks(appModule.android.nativeApp); | ||
} | ||
exports.onAppModuleLaunchEvent = onAppModuleLaunchEvent; | ||
function onAppModuleResumeEvent(args) { | ||
var intent = args.android.getIntent(); | ||
var extras = intent.getExtras(); | ||
export function onAppModuleResumeEvent(args) { | ||
const intent = args.android.getIntent(); | ||
const extras = intent.getExtras(); | ||
if (extras !== null && extras.keySet().contains("from")) { | ||
var result_1 = { | ||
let result = { | ||
foreground: false, | ||
data: {} | ||
}; | ||
var iterator = extras.keySet().iterator(); | ||
const iterator = extras.keySet().iterator(); | ||
while (iterator.hasNext()) { | ||
var key = iterator.next(); | ||
const key = iterator.next(); | ||
if (key !== "from" && key !== "collapse_key") { | ||
result_1[key] = extras.get(key); | ||
result_1.data[key] = extras.get(key); | ||
result[key] = extras.get(key); | ||
result.data[key] = extras.get(key); | ||
} | ||
} | ||
intent.removeExtra("from"); | ||
if (firebase_common_1.firebase._receivedNotificationCallback === null) { | ||
_launchNotification = result_1; | ||
if (firebase._receivedNotificationCallback === null) { | ||
_launchNotification = result; | ||
} | ||
else { | ||
setTimeout(function () { | ||
firebase_common_1.firebase._receivedNotificationCallback(result_1); | ||
setTimeout(() => { | ||
firebase._receivedNotificationCallback(result); | ||
}); | ||
@@ -77,9 +72,7 @@ } | ||
} | ||
exports.onAppModuleResumeEvent = onAppModuleResumeEvent; | ||
function registerForInteractivePush(model) { | ||
export function registerForInteractivePush(model) { | ||
console.log("'registerForInteractivePush' is not currently implemented on Android"); | ||
} | ||
exports.registerForInteractivePush = registerForInteractivePush; | ||
function getCurrentPushToken() { | ||
return new Promise(function (resolve, reject) { | ||
export function getCurrentPushToken() { | ||
return new Promise((resolve, reject) => { | ||
try { | ||
@@ -90,6 +83,6 @@ if (typeof (com.google.firebase.messaging || com.google.firebase.iid) === "undefined") { | ||
} | ||
getSenderId().then(function (senderId) { | ||
getSenderId().then(senderId => { | ||
org.nativescript.plugins.firebase.FirebasePlugin.getCurrentPushToken(senderId, new org.nativescript.plugins.firebase.FirebasePluginListener({ | ||
success: function (token) { return resolve(token); }, | ||
error: function (err) { return reject(err); } | ||
success: token => resolve(token), | ||
error: err => reject(err) | ||
})); | ||
@@ -104,10 +97,9 @@ }); | ||
} | ||
exports.getCurrentPushToken = getCurrentPushToken; | ||
function addOnMessageReceivedCallback(callback) { | ||
return new Promise(function (resolve, reject) { | ||
export function addOnMessageReceivedCallback(callback) { | ||
return new Promise((resolve, reject) => { | ||
try { | ||
firebase_common_1.firebase._receivedNotificationCallback = callback; | ||
firebase._receivedNotificationCallback = callback; | ||
org.nativescript.plugins.firebase.FirebasePlugin.setOnNotificationReceivedCallback(new org.nativescript.plugins.firebase.FirebasePluginListener({ | ||
success: function (notification) { return callback(JSON.parse(notification)); }, | ||
error: function (err) { return console.log("Error handling message: " + err); } | ||
success: notification => callback(JSON.parse(notification)), | ||
error: err => console.log("Error handling message: " + err) | ||
})); | ||
@@ -126,20 +118,19 @@ if (_launchNotification !== null) { | ||
} | ||
exports.addOnMessageReceivedCallback = addOnMessageReceivedCallback; | ||
function addOnPushTokenReceivedCallback(callback) { | ||
return new Promise(function (resolve, reject) { | ||
export function addOnPushTokenReceivedCallback(callback) { | ||
return new Promise((resolve, reject) => { | ||
try { | ||
var tokenReturned_1 = false; | ||
let tokenReturned = false; | ||
org.nativescript.plugins.firebase.FirebasePlugin.setOnPushTokenReceivedCallback(new org.nativescript.plugins.firebase.FirebasePluginListener({ | ||
success: function (token) { | ||
tokenReturned_1 = true; | ||
success: token => { | ||
tokenReturned = true; | ||
callback(token); | ||
}, | ||
error: function (err) { return console.log("addOnPushTokenReceivedCallback error: " + err); } | ||
error: err => console.log("addOnPushTokenReceivedCallback error: " + err) | ||
})); | ||
setTimeout(function () { | ||
if (!tokenReturned_1) { | ||
getSenderId().then(function (senderId) { | ||
setTimeout(() => { | ||
if (!tokenReturned) { | ||
getSenderId().then(senderId => { | ||
org.nativescript.plugins.firebase.FirebasePlugin.getCurrentPushToken(senderId, new org.nativescript.plugins.firebase.FirebasePluginListener({ | ||
success: function (token) { return callback(token); }, | ||
error: function (err) { return console.log(err); } | ||
success: token => callback(token), | ||
error: err => console.log(err) | ||
})); | ||
@@ -157,5 +148,4 @@ }); | ||
} | ||
exports.addOnPushTokenReceivedCallback = addOnPushTokenReceivedCallback; | ||
function registerForPushNotifications(options) { | ||
return new Promise(function (resolve, reject) { | ||
export function registerForPushNotifications(options) { | ||
return new Promise((resolve, reject) => { | ||
try { | ||
@@ -168,7 +158,7 @@ if (typeof (com.google.firebase.messaging) === "undefined") { | ||
getSenderId() | ||
.then(function (senderId) { | ||
.then(senderId => { | ||
org.nativescript.plugins.firebase.FirebasePlugin.registerForPushNotifications(senderId); | ||
resolve(); | ||
}) | ||
.catch(function (e) { return reject(e); }); | ||
.catch(e => reject(e)); | ||
} | ||
@@ -181,5 +171,4 @@ catch (ex) { | ||
} | ||
exports.registerForPushNotifications = registerForPushNotifications; | ||
function unregisterForPushNotifications() { | ||
return new Promise(function (resolve, reject) { | ||
export function unregisterForPushNotifications() { | ||
return new Promise((resolve, reject) => { | ||
try { | ||
@@ -190,3 +179,3 @@ if (typeof (com.google.firebase.messaging) === "undefined") { | ||
} | ||
getSenderId().then(function (senderId) { return org.nativescript.plugins.firebase.FirebasePlugin.unregisterForPushNotifications(senderId); }); | ||
getSenderId().then(senderId => org.nativescript.plugins.firebase.FirebasePlugin.unregisterForPushNotifications(senderId)); | ||
resolve(); | ||
@@ -200,5 +189,4 @@ } | ||
} | ||
exports.unregisterForPushNotifications = unregisterForPushNotifications; | ||
function subscribeToTopic(topicName) { | ||
return new Promise(function (resolve, reject) { | ||
export function subscribeToTopic(topicName) { | ||
return new Promise((resolve, reject) => { | ||
try { | ||
@@ -209,4 +197,4 @@ if (typeof (com.google.firebase.messaging) === "undefined") { | ||
} | ||
var onCompleteListener = new com.google.android.gms.tasks.OnCompleteListener({ | ||
onComplete: function (task) { return task.isSuccessful() ? resolve() : reject(task.getException() && task.getException().getReason ? task.getException().getReason() : task.getException()); } | ||
const onCompleteListener = new com.google.android.gms.tasks.OnCompleteListener({ | ||
onComplete: task => task.isSuccessful() ? resolve() : reject(task.getException() && task.getException().getReason ? task.getException().getReason() : task.getException()) | ||
}); | ||
@@ -223,5 +211,4 @@ com.google.firebase.messaging.FirebaseMessaging.getInstance() | ||
} | ||
exports.subscribeToTopic = subscribeToTopic; | ||
function unsubscribeFromTopic(topicName) { | ||
return new Promise(function (resolve, reject) { | ||
export function unsubscribeFromTopic(topicName) { | ||
return new Promise((resolve, reject) => { | ||
try { | ||
@@ -232,4 +219,4 @@ if (typeof (com.google.firebase.messaging) === "undefined") { | ||
} | ||
var onCompleteListener = new com.google.android.gms.tasks.OnCompleteListener({ | ||
onComplete: function (task) { return task.isSuccessful() ? resolve() : reject(task.getException() && task.getException().getReason ? task.getException().getReason() : task.getException()); } | ||
const onCompleteListener = new com.google.android.gms.tasks.OnCompleteListener({ | ||
onComplete: task => task.isSuccessful() ? resolve() : reject(task.getException() && task.getException().getReason ? task.getException().getReason() : task.getException()) | ||
}); | ||
@@ -246,8 +233,7 @@ com.google.firebase.messaging.FirebaseMessaging.getInstance() | ||
} | ||
exports.unsubscribeFromTopic = unsubscribeFromTopic; | ||
function useAndroidX() { | ||
return global.androidx && global.androidx.appcompat; | ||
} | ||
function areNotificationsEnabled() { | ||
var androidSdkVersion = android.os.Build.VERSION.SDK_INT; | ||
export function areNotificationsEnabled() { | ||
const androidSdkVersion = android.os.Build.VERSION.SDK_INT; | ||
if (androidSdkVersion >= 24) { | ||
@@ -261,2 +247,1 @@ return NotificationManagerCompatClass.from(application.android.context).areNotificationsEnabled(); | ||
} | ||
exports.areNotificationsEnabled = areNotificationsEnabled; |
@@ -1,26 +0,23 @@ | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.areNotificationsEnabled = exports.NotificationActionResponse = exports.PushNotificationModel = exports.IosPushSettings = exports.IosInteractiveNotificationActionOptions = exports.IosInteractivePushSettings = exports.onTokenRefreshNotification = exports.unsubscribeFromTopic = exports.subscribeToTopic = exports.prepAppDelegate = exports.registerForInteractivePush = exports.addBackgroundRemoteNotificationHandler = exports.addOnPushTokenReceivedCallback = exports.handleRemoteNotification = exports.unregisterForPushNotifications = exports.registerForPushNotifications = exports.getCurrentPushToken = exports.addOnMessageReceivedCallback = exports.initFirebaseMessaging = void 0; | ||
var applicationSettings = require("@nativescript/core/application-settings"); | ||
var application = require("@nativescript/core/application"); | ||
var platform_1 = require("@nativescript/core/platform"); | ||
var firebase_common_1 = require("../firebase-common"); | ||
var utils_1 = require("../utils"); | ||
var _notificationActionTakenCallback; | ||
var _pendingNotifications = []; | ||
var _pendingActionTakenNotifications = []; | ||
var _pushToken; | ||
var _receivedPushTokenCallback; | ||
var _receivedNotificationCallback; | ||
var _registerForRemoteNotificationsRanThisSession = false; | ||
var _userNotificationCenterDelegate; | ||
var _firebaseRemoteMessageDelegate; | ||
var _showNotifications = true; | ||
var _showNotificationsWhenInForeground = false; | ||
var _userNotificationCenterDidReceiveNotificationResponseWithCompletionHandler; | ||
var _autoClearBadge = true; | ||
var _resolveWhenDidRegisterForNotifications; | ||
var _rejectWhenDidFailToRegisterForNotifications; | ||
var NOTIFICATIONS_REGISTRATION_KEY = "Firebase-RegisterForRemoteNotifications"; | ||
function initFirebaseMessaging(options) { | ||
import * as applicationSettings from "@nativescript/core/application-settings"; | ||
import * as application from "@nativescript/core/application"; | ||
import { Device } from "@nativescript/core/platform"; | ||
import { firebase } from "../firebase-common"; | ||
import { firebaseUtils } from "../utils"; | ||
let _notificationActionTakenCallback; | ||
let _pendingNotifications = []; | ||
let _pendingActionTakenNotifications = []; | ||
let _pushToken; | ||
let _receivedPushTokenCallback; | ||
let _receivedNotificationCallback; | ||
let _registerForRemoteNotificationsRanThisSession = false; | ||
let _userNotificationCenterDelegate; | ||
let _firebaseRemoteMessageDelegate; | ||
let _showNotifications = true; | ||
let _showNotificationsWhenInForeground = false; | ||
let _userNotificationCenterDidReceiveNotificationResponseWithCompletionHandler; | ||
let _autoClearBadge = true; | ||
let _resolveWhenDidRegisterForNotifications; | ||
let _rejectWhenDidFailToRegisterForNotifications; | ||
const NOTIFICATIONS_REGISTRATION_KEY = "Firebase-RegisterForRemoteNotifications"; | ||
export function initFirebaseMessaging(options) { | ||
if (!options) { | ||
@@ -40,5 +37,4 @@ return; | ||
} | ||
exports.initFirebaseMessaging = initFirebaseMessaging; | ||
function addOnMessageReceivedCallback(callback) { | ||
return new Promise(function (resolve, reject) { | ||
export function addOnMessageReceivedCallback(callback) { | ||
return new Promise((resolve, reject) => { | ||
try { | ||
@@ -57,5 +53,4 @@ applicationSettings.setBoolean(NOTIFICATIONS_REGISTRATION_KEY, true); | ||
} | ||
exports.addOnMessageReceivedCallback = addOnMessageReceivedCallback; | ||
function getCurrentPushToken() { | ||
return new Promise(function (resolve, reject) { | ||
export function getCurrentPushToken() { | ||
return new Promise((resolve, reject) => { | ||
try { | ||
@@ -75,5 +70,4 @@ if (typeof (FIRMessaging) !== "undefined") { | ||
} | ||
exports.getCurrentPushToken = getCurrentPushToken; | ||
function registerForPushNotifications(options) { | ||
return new Promise(function (resolve, reject) { | ||
export function registerForPushNotifications(options) { | ||
return new Promise((resolve, reject) => { | ||
try { | ||
@@ -90,5 +84,4 @@ initFirebaseMessaging(options); | ||
} | ||
exports.registerForPushNotifications = registerForPushNotifications; | ||
function unregisterForPushNotifications() { | ||
return new Promise(function (resolve, reject) { | ||
export function unregisterForPushNotifications() { | ||
return new Promise((resolve, reject) => { | ||
try { | ||
@@ -104,8 +97,7 @@ UIApplication.sharedApplication.unregisterForRemoteNotifications(); | ||
} | ||
exports.unregisterForPushNotifications = unregisterForPushNotifications; | ||
function handleRemoteNotification(app, userInfo) { | ||
var userInfoJSON = utils_1.firebaseUtils.toJsObject(userInfo); | ||
var aps = userInfo.objectForKey("aps"); | ||
export function handleRemoteNotification(app, userInfo) { | ||
const userInfoJSON = firebaseUtils.toJsObject(userInfo); | ||
const aps = userInfo.objectForKey("aps"); | ||
if (aps !== null) { | ||
var alrt = aps.objectForKey("alert"); | ||
const alrt = aps.objectForKey("alert"); | ||
if (alrt !== null && alrt.objectForKey) { | ||
@@ -123,5 +115,4 @@ userInfoJSON.title = alrt.objectForKey("title"); | ||
} | ||
exports.handleRemoteNotification = handleRemoteNotification; | ||
function addOnPushTokenReceivedCallback(callback) { | ||
return new Promise(function (resolve, reject) { | ||
export function addOnPushTokenReceivedCallback(callback) { | ||
return new Promise((resolve, reject) => { | ||
try { | ||
@@ -143,5 +134,4 @@ _receivedPushTokenCallback = callback; | ||
} | ||
exports.addOnPushTokenReceivedCallback = addOnPushTokenReceivedCallback; | ||
function addBackgroundRemoteNotificationHandler(appDelegate) { | ||
appDelegate.prototype.applicationDidRegisterForRemoteNotificationsWithDeviceToken = function (application, deviceToken) { | ||
export function addBackgroundRemoteNotificationHandler(appDelegate) { | ||
appDelegate.prototype.applicationDidRegisterForRemoteNotificationsWithDeviceToken = (application, deviceToken) => { | ||
if (areNotificationsEnabled()) { | ||
@@ -157,3 +147,3 @@ _resolveWhenDidRegisterForNotifications && _resolveWhenDidRegisterForNotifications(); | ||
else { | ||
var token = deviceToken.debugDescription.replace(/[< >]/g, ""); | ||
const token = deviceToken.debugDescription.replace(/[< >]/g, ""); | ||
_pushToken = token; | ||
@@ -165,3 +155,3 @@ if (_receivedPushTokenCallback) { | ||
}; | ||
appDelegate.prototype.applicationDidFailToRegisterForRemoteNotificationsWithError = function (application, error) { | ||
appDelegate.prototype.applicationDidFailToRegisterForRemoteNotificationsWithError = (application, error) => { | ||
if (error.localizedDescription.indexOf("not supported in the simulator") > -1) { | ||
@@ -174,5 +164,5 @@ _resolveWhenDidRegisterForNotifications && _resolveWhenDidRegisterForNotifications(); | ||
}; | ||
appDelegate.prototype.applicationDidReceiveRemoteNotificationFetchCompletionHandler = function (app, notification, completionHandler) { | ||
appDelegate.prototype.applicationDidReceiveRemoteNotificationFetchCompletionHandler = (app, notification, completionHandler) => { | ||
if (typeof (FIRAuth) !== "undefined") { | ||
if (firebase_common_1.firebase._configured && FIRAuth.auth().canHandleNotification(notification)) { | ||
if (firebase._configured && FIRAuth.auth().canHandleNotification(notification)) { | ||
completionHandler(1); | ||
@@ -186,9 +176,8 @@ return; | ||
} | ||
exports.addBackgroundRemoteNotificationHandler = addBackgroundRemoteNotificationHandler; | ||
function registerForInteractivePush(model) { | ||
var nativeActions = []; | ||
model.iosSettings.interactiveSettings.actions.forEach((function (action) { | ||
var notificationActionOptions = action.options ? action.options.valueOf() : UNNotificationActionOptionNone; | ||
var actionType = action.type || "button"; | ||
var nativeAction; | ||
export function registerForInteractivePush(model) { | ||
let nativeActions = []; | ||
model.iosSettings.interactiveSettings.actions.forEach(((action) => { | ||
let notificationActionOptions = action.options ? action.options.valueOf() : UNNotificationActionOptionNone; | ||
let actionType = action.type || "button"; | ||
let nativeAction; | ||
if (actionType === "input") { | ||
@@ -205,9 +194,9 @@ nativeAction = UNTextInputNotificationAction.actionWithIdentifierTitleOptionsTextInputButtonTitleTextInputPlaceholder(action.identifier, action.title, notificationActionOptions, action.submitLabel || "Submit", action.placeholder); | ||
})); | ||
var actions = NSArray.arrayWithArray(nativeActions); | ||
var nativeCategories = []; | ||
model.iosSettings.interactiveSettings.categories.forEach(function (category) { | ||
var nativeCategory = UNNotificationCategory.categoryWithIdentifierActionsIntentIdentifiersOptions(category.identifier, actions, null, null); | ||
let actions = NSArray.arrayWithArray(nativeActions); | ||
let nativeCategories = []; | ||
model.iosSettings.interactiveSettings.categories.forEach(category => { | ||
let nativeCategory = UNNotificationCategory.categoryWithIdentifierActionsIntentIdentifiersOptions(category.identifier, actions, null, null); | ||
nativeCategories.push(nativeCategory); | ||
}); | ||
var nsSetCategories = new NSSet(nativeCategories); | ||
const nsSetCategories = new NSSet(nativeCategories); | ||
UNUserNotificationCenter.currentNotificationCenter().setNotificationCategories(nsSetCategories); | ||
@@ -218,6 +207,5 @@ if (model.onNotificationActionTakenCallback) { | ||
} | ||
exports.registerForInteractivePush = registerForInteractivePush; | ||
function prepAppDelegate() { | ||
_addObserver("com.firebase.iid.notif.refresh-token", function (notification) { return exports.onTokenRefreshNotification(notification.object); }); | ||
_addObserver(UIApplicationDidFinishLaunchingNotification, function (appNotification) { | ||
export function prepAppDelegate() { | ||
_addObserver("com.firebase.iid.notif.refresh-token", notification => onTokenRefreshNotification(notification.object)); | ||
_addObserver(UIApplicationDidFinishLaunchingNotification, appNotification => { | ||
if (applicationSettings.getBoolean(NOTIFICATIONS_REGISTRATION_KEY, false)) { | ||
@@ -227,3 +215,3 @@ _registerForRemoteNotifications(); | ||
}); | ||
_addObserver(UIApplicationDidBecomeActiveNotification, function (appNotification) { | ||
_addObserver(UIApplicationDidBecomeActiveNotification, appNotification => { | ||
_processPendingNotifications(); | ||
@@ -235,5 +223,4 @@ if (typeof (FIRMessaging) !== "undefined") { | ||
} | ||
exports.prepAppDelegate = prepAppDelegate; | ||
function subscribeToTopic(topicName) { | ||
return new Promise(function (resolve, reject) { | ||
export function subscribeToTopic(topicName) { | ||
return new Promise((resolve, reject) => { | ||
try { | ||
@@ -244,3 +231,3 @@ if (typeof (FIRMessaging) === "undefined") { | ||
} | ||
FIRMessaging.messaging().subscribeToTopicCompletion(topicName, function (error) { | ||
FIRMessaging.messaging().subscribeToTopicCompletion(topicName, (error) => { | ||
error ? reject(error.localizedDescription) : resolve(); | ||
@@ -255,5 +242,4 @@ }); | ||
} | ||
exports.subscribeToTopic = subscribeToTopic; | ||
function unsubscribeFromTopic(topicName) { | ||
return new Promise(function (resolve, reject) { | ||
export function unsubscribeFromTopic(topicName) { | ||
return new Promise((resolve, reject) => { | ||
try { | ||
@@ -264,3 +250,3 @@ if (typeof (FIRMessaging) === "undefined") { | ||
} | ||
FIRMessaging.messaging().unsubscribeFromTopicCompletion(topicName, function (error) { | ||
FIRMessaging.messaging().unsubscribeFromTopicCompletion(topicName, error => { | ||
error ? reject(error.localizedDescription) : resolve(); | ||
@@ -275,4 +261,3 @@ }); | ||
} | ||
exports.unsubscribeFromTopic = unsubscribeFromTopic; | ||
exports.onTokenRefreshNotification = function (token) { | ||
export const onTokenRefreshNotification = token => { | ||
_pushToken = token; | ||
@@ -283,9 +268,5 @@ if (_receivedPushTokenCallback) { | ||
}; | ||
var IosInteractivePushSettings = (function () { | ||
function IosInteractivePushSettings() { | ||
} | ||
return IosInteractivePushSettings; | ||
}()); | ||
exports.IosInteractivePushSettings = IosInteractivePushSettings; | ||
var IosInteractiveNotificationActionOptions; | ||
export class IosInteractivePushSettings { | ||
} | ||
export var IosInteractiveNotificationActionOptions; | ||
(function (IosInteractiveNotificationActionOptions) { | ||
@@ -295,26 +276,13 @@ IosInteractiveNotificationActionOptions[IosInteractiveNotificationActionOptions["authenticationRequired"] = 1] = "authenticationRequired"; | ||
IosInteractiveNotificationActionOptions[IosInteractiveNotificationActionOptions["foreground"] = 4] = "foreground"; | ||
})(IosInteractiveNotificationActionOptions = exports.IosInteractiveNotificationActionOptions || (exports.IosInteractiveNotificationActionOptions = {})); | ||
var IosPushSettings = (function () { | ||
function IosPushSettings() { | ||
} | ||
return IosPushSettings; | ||
}()); | ||
exports.IosPushSettings = IosPushSettings; | ||
var PushNotificationModel = (function () { | ||
function PushNotificationModel() { | ||
} | ||
return PushNotificationModel; | ||
}()); | ||
exports.PushNotificationModel = PushNotificationModel; | ||
var NotificationActionResponse = (function () { | ||
function NotificationActionResponse() { | ||
} | ||
return NotificationActionResponse; | ||
}()); | ||
exports.NotificationActionResponse = NotificationActionResponse; | ||
function areNotificationsEnabled() { | ||
})(IosInteractiveNotificationActionOptions || (IosInteractiveNotificationActionOptions = {})); | ||
export class IosPushSettings { | ||
} | ||
export class PushNotificationModel { | ||
} | ||
export class NotificationActionResponse { | ||
} | ||
export function areNotificationsEnabled() { | ||
return UIApplication.sharedApplication.currentUserNotificationSettings.types > 0; | ||
} | ||
exports.areNotificationsEnabled = areNotificationsEnabled; | ||
var updateUserInfo = function (userInfoJSON) { | ||
const updateUserInfo = userInfoJSON => { | ||
if (userInfoJSON.aps && userInfoJSON.aps.alert) { | ||
@@ -327,3 +295,3 @@ userInfoJSON.title = userInfoJSON.aps.alert.title; | ||
} | ||
Object.keys(userInfoJSON).forEach(function (key) { | ||
Object.keys(userInfoJSON).forEach(key => { | ||
if (key !== "data") | ||
@@ -335,5 +303,5 @@ userInfoJSON.data[key] = userInfoJSON[key]; | ||
function _registerForRemoteNotifications(resolve, reject) { | ||
var app = UIApplication.sharedApplication; | ||
let app = UIApplication.sharedApplication; | ||
if (!app) { | ||
application.on("launch", function () { return _registerForRemoteNotifications(resolve, reject); }); | ||
application.on("launch", () => _registerForRemoteNotifications(resolve, reject)); | ||
return; | ||
@@ -348,5 +316,5 @@ } | ||
_rejectWhenDidFailToRegisterForNotifications = reject; | ||
if (parseInt(platform_1.Device.osVersion) >= 10) { | ||
var authorizationOptions = 4 | 2 | 1; | ||
UNUserNotificationCenter.currentNotificationCenter().requestAuthorizationWithOptionsCompletionHandler(authorizationOptions, function (granted, error) { | ||
if (parseInt(Device.osVersion) >= 10) { | ||
const authorizationOptions = 4 | 2 | 1; | ||
UNUserNotificationCenter.currentNotificationCenter().requestAuthorizationWithOptionsCompletionHandler(authorizationOptions, (granted, error) => { | ||
if (!error) { | ||
@@ -357,3 +325,3 @@ if (app === null) { | ||
if (app !== null) { | ||
utils_1.firebaseUtils.invokeOnRunLoop(function () { return app.registerForRemoteNotifications(); }); | ||
firebaseUtils.invokeOnRunLoop(() => app.registerForRemoteNotifications()); | ||
} | ||
@@ -367,11 +335,11 @@ } | ||
if (_showNotifications) { | ||
_userNotificationCenterDelegate = UNUserNotificationCenterDelegateImpl.new().initWithCallback(function (unnotification, actionIdentifier, inputText) { | ||
var userInfo = unnotification.request.content.userInfo; | ||
var userInfoJSON = utils_1.firebaseUtils.toJsObject(userInfo); | ||
_userNotificationCenterDelegate = UNUserNotificationCenterDelegateImpl.new().initWithCallback((unnotification, actionIdentifier, inputText) => { | ||
const userInfo = unnotification.request.content.userInfo; | ||
const userInfoJSON = firebaseUtils.toJsObject(userInfo); | ||
updateUserInfo(userInfoJSON); | ||
if (actionIdentifier) { | ||
_pendingActionTakenNotifications.push({ | ||
actionIdentifier: actionIdentifier, | ||
userInfoJSON: userInfoJSON, | ||
inputText: inputText | ||
actionIdentifier, | ||
userInfoJSON, | ||
inputText | ||
}); | ||
@@ -395,7 +363,7 @@ if (_notificationActionTakenCallback) { | ||
if (typeof (FIRMessaging) !== "undefined") { | ||
_firebaseRemoteMessageDelegate = FIRMessagingDelegateImpl.new().initWithCallback(function (appDataDictionary) { | ||
var userInfoJSON = utils_1.firebaseUtils.toJsObject(appDataDictionary); | ||
_firebaseRemoteMessageDelegate = FIRMessagingDelegateImpl.new().initWithCallback((appDataDictionary) => { | ||
const userInfoJSON = firebaseUtils.toJsObject(appDataDictionary); | ||
updateUserInfo(userInfoJSON); | ||
_pendingNotifications.push(userInfoJSON); | ||
var asJs = utils_1.firebaseUtils.toJsObject(appDataDictionary.objectForKey("notification")); | ||
const asJs = firebaseUtils.toJsObject(appDataDictionary.objectForKey("notification")); | ||
if (asJs) { | ||
@@ -405,3 +373,3 @@ userInfoJSON.title = asJs.title; | ||
} | ||
var app = UIApplication.sharedApplication; | ||
const app = UIApplication.sharedApplication; | ||
if (app.applicationState === 0) { | ||
@@ -421,5 +389,5 @@ userInfoJSON.foreground = true; | ||
else { | ||
var notificationTypes = 4 | 1 | 2 | 1; | ||
var notificationSettings = UIUserNotificationSettings.settingsForTypesCategories(notificationTypes, null); | ||
utils_1.firebaseUtils.invokeOnRunLoop(function () { | ||
const notificationTypes = 4 | 1 | 2 | 1; | ||
const notificationSettings = UIUserNotificationSettings.settingsForTypesCategories(notificationTypes, null); | ||
firebaseUtils.invokeOnRunLoop(() => { | ||
app.registerForRemoteNotifications(); | ||
@@ -431,3 +399,3 @@ }); | ||
function _addOnNotificationActionTakenCallback(callback) { | ||
return new Promise(function (resolve, reject) { | ||
return new Promise((resolve, reject) => { | ||
try { | ||
@@ -445,9 +413,9 @@ _notificationActionTakenCallback = callback; | ||
function _processPendingNotifications() { | ||
var app = UIApplication.sharedApplication; | ||
const app = UIApplication.sharedApplication; | ||
if (!app) { | ||
application.on("launch", function () { return _processPendingNotifications(); }); | ||
application.on("launch", () => _processPendingNotifications()); | ||
return; | ||
} | ||
if (_receivedNotificationCallback) { | ||
for (var p in _pendingNotifications) { | ||
for (let p in _pendingNotifications) { | ||
_receivedNotificationCallback(_pendingNotifications[p]); | ||
@@ -462,9 +430,9 @@ } | ||
function _processPendingActionTakenNotifications() { | ||
var app = UIApplication.sharedApplication; | ||
const app = UIApplication.sharedApplication; | ||
if (!app) { | ||
application.on("launch", function () { return _processPendingNotifications(); }); | ||
application.on("launch", () => _processPendingNotifications()); | ||
return; | ||
} | ||
if (_notificationActionTakenCallback) { | ||
for (var p in _pendingActionTakenNotifications) { | ||
for (let p in _pendingActionTakenNotifications) { | ||
_notificationActionTakenCallback(_pendingActionTakenNotifications[p].actionIdentifier, _pendingActionTakenNotifications[p].userInfoJSON, _pendingActionTakenNotifications[p].inputText); | ||
@@ -481,3 +449,3 @@ } | ||
} | ||
var UNUserNotificationCenterDelegateImpl = (function (_super) { | ||
var UNUserNotificationCenterDelegateImpl = /** @class */ (function (_super) { | ||
__extends(UNUserNotificationCenterDelegateImpl, _super); | ||
@@ -499,8 +467,9 @@ function UNUserNotificationCenterDelegateImpl() { | ||
var userInfo = notification.request.content.userInfo; | ||
var userInfoJSON = utils_1.firebaseUtils.toJsObject(userInfo); | ||
if (_showNotificationsWhenInForeground || | ||
userInfoJSON["gcm.notification.showWhenInForeground"] === "true" || | ||
userInfoJSON["showWhenInForeground"] === true || | ||
(userInfoJSON.aps && userInfoJSON.aps.showWhenInForeground === true)) { | ||
completionHandler(4 | 2 | 1); | ||
var userInfoJSON = firebaseUtils.toJsObject(userInfo); | ||
if (_showNotificationsWhenInForeground || // Default value, in case we always want to show when in foreground. | ||
userInfoJSON["gcm.notification.showWhenInForeground"] === "true" || // This is for FCM, ... | ||
userInfoJSON["showWhenInForeground"] === true || // ...this is for non-FCM... | ||
(userInfoJSON.aps && userInfoJSON.aps.showWhenInForeground === true) // ...and this as well (so users can choose where to put it). | ||
) { | ||
completionHandler(UNNotificationPresentationOptions.Alert | UNNotificationPresentationOptions.Sound | UNNotificationPresentationOptions.Badge); | ||
} | ||
@@ -513,2 +482,3 @@ else { | ||
UNUserNotificationCenterDelegateImpl.prototype.userNotificationCenterDidReceiveNotificationResponseWithCompletionHandler = function (center, response, completionHandler) { | ||
// let's ignore "dismiss" actions | ||
if (response && response.actionIdentifier === UNNotificationDismissActionIdentifier) { | ||
@@ -527,3 +497,3 @@ completionHandler(); | ||
}(NSObject)); | ||
var FIRMessagingDelegateImpl = (function (_super) { | ||
var FIRMessagingDelegateImpl = /** @class */ (function (_super) { | ||
__extends(FIRMessagingDelegateImpl, _super); | ||
@@ -547,3 +517,3 @@ function FIRMessagingDelegateImpl() { | ||
FIRMessagingDelegateImpl.prototype.messagingDidReceiveRegistrationToken = function (messaging, fcmToken) { | ||
exports.onTokenRefreshNotification(fcmToken); | ||
onTokenRefreshNotification(fcmToken); | ||
}; | ||
@@ -550,0 +520,0 @@ FIRMessagingDelegateImpl.ObjCProtocols = []; |
@@ -1,30 +0,21 @@ | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.MLKitAutoML = exports.confidenceThresholdProperty = exports.localModelResourceFolderProperty = void 0; | ||
var properties_1 = require("@nativescript/core/ui/core/properties"); | ||
var mlkit_cameraview_1 = require("../mlkit-cameraview"); | ||
exports.localModelResourceFolderProperty = new properties_1.Property({ | ||
import { Property } from "@nativescript/core/ui/core/properties"; | ||
import { MLKitCameraView } from "../mlkit-cameraview"; | ||
export const localModelResourceFolderProperty = new Property({ | ||
name: "localModelResourceFolder", | ||
defaultValue: null, | ||
}); | ||
exports.confidenceThresholdProperty = new properties_1.Property({ | ||
export const confidenceThresholdProperty = new Property({ | ||
name: "confidenceThreshold", | ||
defaultValue: 0.5, | ||
}); | ||
var MLKitAutoML = (function (_super) { | ||
__extends(MLKitAutoML, _super); | ||
function MLKitAutoML() { | ||
return _super !== null && _super.apply(this, arguments) || this; | ||
export class MLKitAutoML extends MLKitCameraView { | ||
[localModelResourceFolderProperty.setNative](value) { | ||
this.localModelResourceFolder = value; | ||
} | ||
MLKitAutoML.prototype[exports.localModelResourceFolderProperty.setNative] = function (value) { | ||
this.localModelResourceFolder = value; | ||
}; | ||
MLKitAutoML.prototype[exports.confidenceThresholdProperty.setNative] = function (value) { | ||
[confidenceThresholdProperty.setNative](value) { | ||
this.confidenceThreshold = parseFloat(value); | ||
}; | ||
MLKitAutoML.scanResultEvent = "scanResult"; | ||
return MLKitAutoML; | ||
}(mlkit_cameraview_1.MLKitCameraView)); | ||
exports.MLKitAutoML = MLKitAutoML; | ||
exports.localModelResourceFolderProperty.register(MLKitAutoML); | ||
exports.confidenceThresholdProperty.register(MLKitAutoML); | ||
} | ||
} | ||
MLKitAutoML.scanResultEvent = "scanResult"; | ||
localModelResourceFolderProperty.register(MLKitAutoML); | ||
confidenceThresholdProperty.register(MLKitAutoML); |
@@ -1,25 +0,17 @@ | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.labelImage = exports.MLKitAutoML = void 0; | ||
var image_source_1 = require("@nativescript/core/image-source"); | ||
var automl_common_1 = require("./automl-common"); | ||
var MLKitAutoML = (function (_super) { | ||
__extends(MLKitAutoML, _super); | ||
function MLKitAutoML() { | ||
return _super !== null && _super.apply(this, arguments) || this; | ||
import { ImageSource } from "@nativescript/core/image-source"; | ||
import { MLKitAutoML as MLKitAutoMLBase } from "./automl-common"; | ||
export class MLKitAutoML extends MLKitAutoMLBase { | ||
createDetector() { | ||
return getDetector(this.localModelResourceFolder, this.confidenceThreshold); | ||
} | ||
MLKitAutoML.prototype.createDetector = function () { | ||
return getDetector(this.localModelResourceFolder, this.confidenceThreshold); | ||
}; | ||
MLKitAutoML.prototype.createSuccessListener = function () { | ||
var _this = this; | ||
createSuccessListener() { | ||
return new com.google.android.gms.tasks.OnSuccessListener({ | ||
onSuccess: function (labels) { | ||
onSuccess: labels => { | ||
if (labels.size() === 0) | ||
return; | ||
var result = { | ||
const result = { | ||
labels: [] | ||
}; | ||
for (var i = 0; i < labels.size(); i++) { | ||
var label = labels.get(i); | ||
for (let i = 0; i < labels.size(); i++) { | ||
const label = labels.get(i); | ||
result.labels.push({ | ||
@@ -30,5 +22,5 @@ text: label.getText(), | ||
} | ||
_this.notify({ | ||
this.notify({ | ||
eventName: MLKitAutoML.scanResultEvent, | ||
object: _this, | ||
object: this, | ||
value: result | ||
@@ -38,11 +30,9 @@ }); | ||
}); | ||
}; | ||
return MLKitAutoML; | ||
}(automl_common_1.MLKitAutoML)); | ||
exports.MLKitAutoML = MLKitAutoML; | ||
} | ||
} | ||
function getDetector(localModelResourceFolder, confidenceThreshold) { | ||
var model = new com.google.firebase.ml.vision.automl.FirebaseAutoMLLocalModel.Builder() | ||
const model = new com.google.firebase.ml.vision.automl.FirebaseAutoMLLocalModel.Builder() | ||
.setAssetFilePath(localModelResourceFolder + "/manifest.json") | ||
.build(); | ||
var labelDetectorOptions = new com.google.firebase.ml.vision.label.FirebaseVisionOnDeviceAutoMLImageLabelerOptions.Builder(model) | ||
const labelDetectorOptions = new com.google.firebase.ml.vision.label.FirebaseVisionOnDeviceAutoMLImageLabelerOptions.Builder(model) | ||
.setConfidenceThreshold(confidenceThreshold) | ||
@@ -53,14 +43,14 @@ .build(); | ||
} | ||
function labelImage(options) { | ||
return new Promise(function (resolve, reject) { | ||
export function labelImage(options) { | ||
return new Promise((resolve, reject) => { | ||
try { | ||
var firebaseVisionAutoMLImageLabeler_1 = getDetector(options.localModelResourceFolder, options.confidenceThreshold || 0.5); | ||
var onSuccessListener = new com.google.android.gms.tasks.OnSuccessListener({ | ||
onSuccess: function (labels) { | ||
var result = { | ||
const firebaseVisionAutoMLImageLabeler = getDetector(options.localModelResourceFolder, options.confidenceThreshold || 0.5); | ||
const onSuccessListener = new com.google.android.gms.tasks.OnSuccessListener({ | ||
onSuccess: labels => { | ||
const result = { | ||
labels: [] | ||
}; | ||
if (labels) { | ||
for (var i = 0; i < labels.size(); i++) { | ||
var label = labels.get(i); | ||
for (let i = 0; i < labels.size(); i++) { | ||
const label = labels.get(i); | ||
result.labels.push({ | ||
@@ -73,9 +63,9 @@ text: label.getText(), | ||
resolve(result); | ||
firebaseVisionAutoMLImageLabeler_1.close(); | ||
firebaseVisionAutoMLImageLabeler.close(); | ||
} | ||
}); | ||
var onFailureListener = new com.google.android.gms.tasks.OnFailureListener({ | ||
onFailure: function (exception) { return reject(exception.getMessage()); } | ||
const onFailureListener = new com.google.android.gms.tasks.OnFailureListener({ | ||
onFailure: exception => reject(exception.getMessage()) | ||
}); | ||
firebaseVisionAutoMLImageLabeler_1 | ||
firebaseVisionAutoMLImageLabeler | ||
.processImage(getImage(options)) | ||
@@ -91,6 +81,5 @@ .addOnSuccessListener(onSuccessListener) | ||
} | ||
exports.labelImage = labelImage; | ||
function getImage(options) { | ||
var image = options.image instanceof image_source_1.ImageSource ? options.image.android : options.image.imageSource.android; | ||
const image = options.image instanceof ImageSource ? options.image.android : options.image.imageSource.android; | ||
return com.google.firebase.ml.vision.common.FirebaseVisionImage.fromBitmap(image); | ||
} |
@@ -1,17 +0,9 @@ | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.labelImage = exports.MLKitAutoML = void 0; | ||
var image_source_1 = require("@nativescript/core/image-source"); | ||
var automl_common_1 = require("./automl-common"); | ||
var MLKitAutoML = (function (_super) { | ||
__extends(MLKitAutoML, _super); | ||
function MLKitAutoML() { | ||
return _super !== null && _super.apply(this, arguments) || this; | ||
import { ImageSource } from "@nativescript/core/image-source"; | ||
import { MLKitAutoML as MLKitAutoMLBase } from "./automl-common"; | ||
export class MLKitAutoML extends MLKitAutoMLBase { | ||
createDetector() { | ||
return getDetector(this.localModelResourceFolder, this.confidenceThreshold); | ||
} | ||
MLKitAutoML.prototype.createDetector = function () { | ||
return getDetector(this.localModelResourceFolder, this.confidenceThreshold); | ||
}; | ||
MLKitAutoML.prototype.createSuccessListener = function () { | ||
var _this = this; | ||
return function (labels, error) { | ||
createSuccessListener() { | ||
return (labels, error) => { | ||
if (error !== null) { | ||
@@ -21,7 +13,7 @@ console.log(error.localizedDescription); | ||
else if (labels !== null && labels.count > 0) { | ||
var result = { | ||
const result = { | ||
labels: [] | ||
}; | ||
for (var i = 0, l = labels.count; i < l; i++) { | ||
var label = labels.objectAtIndex(i); | ||
for (let i = 0, l = labels.count; i < l; i++) { | ||
const label = labels.objectAtIndex(i); | ||
result.labels.push({ | ||
@@ -32,5 +24,5 @@ text: label.text, | ||
} | ||
_this.notify({ | ||
this.notify({ | ||
eventName: MLKitAutoML.scanResultEvent, | ||
object: _this, | ||
object: this, | ||
value: result | ||
@@ -40,22 +32,20 @@ }); | ||
}; | ||
}; | ||
MLKitAutoML.prototype.rotateRecording = function () { | ||
} | ||
rotateRecording() { | ||
return true; | ||
}; | ||
return MLKitAutoML; | ||
}(automl_common_1.MLKitAutoML)); | ||
exports.MLKitAutoML = MLKitAutoML; | ||
} | ||
} | ||
function getDetector(localModelResourceFolder, confidenceThreshold) { | ||
var manifestPath = NSBundle.mainBundle.pathForResourceOfTypeInDirectory("manifest", "json", localModelResourceFolder); | ||
var fIRAutoMLLocalModel = FIRAutoMLLocalModel.alloc().initWithManifestPath(manifestPath); | ||
var options = FIRVisionOnDeviceAutoMLImageLabelerOptions.alloc().initWithLocalModel(fIRAutoMLLocalModel); | ||
const manifestPath = NSBundle.mainBundle.pathForResourceOfTypeInDirectory("manifest", "json", localModelResourceFolder); | ||
const fIRAutoMLLocalModel = FIRAutoMLLocalModel.alloc().initWithManifestPath(manifestPath); | ||
const options = FIRVisionOnDeviceAutoMLImageLabelerOptions.alloc().initWithLocalModel(fIRAutoMLLocalModel); | ||
options.confidenceThreshold = confidenceThreshold || 0.5; | ||
var fIRVisionImageLabeler = FIRVision.vision().onDeviceAutoMLImageLabelerWithOptions(options); | ||
const fIRVisionImageLabeler = FIRVision.vision().onDeviceAutoMLImageLabelerWithOptions(options); | ||
return fIRVisionImageLabeler; | ||
} | ||
function labelImage(options) { | ||
return new Promise(function (resolve, reject) { | ||
export function labelImage(options) { | ||
return new Promise((resolve, reject) => { | ||
try { | ||
var labelDetector = getDetector(options.localModelResourceFolder, options.confidenceThreshold); | ||
labelDetector.processImageCompletion(getImage(options), function (labels, error) { | ||
const labelDetector = getDetector(options.localModelResourceFolder, options.confidenceThreshold); | ||
labelDetector.processImageCompletion(getImage(options), (labels, error) => { | ||
if (error !== null) { | ||
@@ -65,7 +55,7 @@ reject(error.localizedDescription); | ||
else if (labels !== null) { | ||
var result = { | ||
const result = { | ||
labels: [] | ||
}; | ||
for (var i = 0, l = labels.count; i < l; i++) { | ||
var label = labels.objectAtIndex(i); | ||
for (let i = 0, l = labels.count; i < l; i++) { | ||
const label = labels.objectAtIndex(i); | ||
result.labels.push({ | ||
@@ -86,6 +76,5 @@ text: label.text, | ||
} | ||
exports.labelImage = labelImage; | ||
function getImage(options) { | ||
var image = options.image instanceof image_source_1.ImageSource ? options.image.ios : options.image.imageSource.ios; | ||
const image = options.image instanceof ImageSource ? options.image.ios : options.image.imageSource.ios; | ||
return FIRVisionImage.alloc().initWithImage(image); | ||
} |
@@ -1,8 +0,5 @@ | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.MLKitBarcodeScanner = exports.supportInverseBarcodesProperty = exports.reportDuplicatesProperty = exports.beepOnScanProperty = exports.formatsProperty = exports.BarcodeFormat = void 0; | ||
var view_base_1 = require("@nativescript/core/ui/core/view-base"); | ||
var properties_1 = require("@nativescript/core/ui/core/properties"); | ||
var mlkit_cameraview_1 = require("../mlkit-cameraview"); | ||
var BarcodeFormat; | ||
import { booleanConverter } from "@nativescript/core/ui/core/view-base"; | ||
import { Property } from "@nativescript/core/ui/core/properties"; | ||
import { MLKitCameraView } from "../mlkit-cameraview"; | ||
export var BarcodeFormat; | ||
(function (BarcodeFormat) { | ||
@@ -22,45 +19,39 @@ BarcodeFormat[BarcodeFormat["CODE_128"] = 1] = "CODE_128"; | ||
BarcodeFormat[BarcodeFormat["AZTEC"] = 4096] = "AZTEC"; | ||
})(BarcodeFormat = exports.BarcodeFormat || (exports.BarcodeFormat = {})); | ||
exports.formatsProperty = new properties_1.Property({ | ||
})(BarcodeFormat || (BarcodeFormat = {})); | ||
export const formatsProperty = new Property({ | ||
name: "formats", | ||
defaultValue: null, | ||
}); | ||
exports.beepOnScanProperty = new properties_1.Property({ | ||
export const beepOnScanProperty = new Property({ | ||
name: "beepOnScan", | ||
defaultValue: true, | ||
valueConverter: view_base_1.booleanConverter | ||
valueConverter: booleanConverter | ||
}); | ||
exports.reportDuplicatesProperty = new properties_1.Property({ | ||
export const reportDuplicatesProperty = new Property({ | ||
name: "reportDuplicates", | ||
defaultValue: false, | ||
valueConverter: view_base_1.booleanConverter | ||
valueConverter: booleanConverter | ||
}); | ||
exports.supportInverseBarcodesProperty = new properties_1.Property({ | ||
export const supportInverseBarcodesProperty = new Property({ | ||
name: "supportInverseBarcodes", | ||
defaultValue: false, | ||
valueConverter: view_base_1.booleanConverter | ||
valueConverter: booleanConverter | ||
}); | ||
var MLKitBarcodeScanner = (function (_super) { | ||
__extends(MLKitBarcodeScanner, _super); | ||
function MLKitBarcodeScanner() { | ||
return _super !== null && _super.apply(this, arguments) || this; | ||
export class MLKitBarcodeScanner extends MLKitCameraView { | ||
[formatsProperty.setNative](value) { | ||
this.formats = value; | ||
} | ||
MLKitBarcodeScanner.prototype[exports.formatsProperty.setNative] = function (value) { | ||
this.formats = value; | ||
}; | ||
MLKitBarcodeScanner.prototype[exports.beepOnScanProperty.setNative] = function (value) { | ||
[beepOnScanProperty.setNative](value) { | ||
this.beepOnScan = value; | ||
}; | ||
MLKitBarcodeScanner.prototype[exports.reportDuplicatesProperty.setNative] = function (value) { | ||
} | ||
[reportDuplicatesProperty.setNative](value) { | ||
this.reportDuplicates = value; | ||
}; | ||
MLKitBarcodeScanner.prototype[exports.supportInverseBarcodesProperty.setNative] = function (value) { | ||
} | ||
[supportInverseBarcodesProperty.setNative](value) { | ||
this.supportInverseBarcodes = value; | ||
}; | ||
return MLKitBarcodeScanner; | ||
}(mlkit_cameraview_1.MLKitCameraView)); | ||
exports.MLKitBarcodeScanner = MLKitBarcodeScanner; | ||
exports.formatsProperty.register(MLKitBarcodeScanner); | ||
exports.beepOnScanProperty.register(MLKitBarcodeScanner); | ||
exports.reportDuplicatesProperty.register(MLKitBarcodeScanner); | ||
exports.supportInverseBarcodesProperty.register(MLKitBarcodeScanner); | ||
} | ||
} | ||
formatsProperty.register(MLKitBarcodeScanner); | ||
beepOnScanProperty.register(MLKitBarcodeScanner); | ||
reportDuplicatesProperty.register(MLKitBarcodeScanner); | ||
supportInverseBarcodesProperty.register(MLKitBarcodeScanner); |
@@ -1,18 +0,13 @@ | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.scanBarcodesOnDevice = exports.MLKitBarcodeScanner = exports.BarcodeFormat = void 0; | ||
var image_source_1 = require("@nativescript/core/image-source"); | ||
var barcodescanning_common_1 = require("./barcodescanning-common"); | ||
Object.defineProperty(exports, "BarcodeFormat", { enumerable: true, get: function () { return barcodescanning_common_1.BarcodeFormat; } }); | ||
var application = require("@nativescript/core/application"); | ||
var gmsTasks = com.google.android.gms.tasks; | ||
var MLKitBarcodeScanner = (function (_super) { | ||
__extends(MLKitBarcodeScanner, _super); | ||
function MLKitBarcodeScanner() { | ||
var _this = _super !== null && _super.apply(this, arguments) || this; | ||
_this.inverseThrottle = 0; | ||
return _this; | ||
import { ImageSource } from "@nativescript/core/image-source"; | ||
import { BarcodeFormat, MLKitBarcodeScanner as MLKitBarcodeScannerBase } from "./barcodescanning-common"; | ||
import * as application from "@nativescript/core/application"; | ||
export { BarcodeFormat }; | ||
const gmsTasks = com.google.android.gms.tasks; | ||
export class MLKitBarcodeScanner extends MLKitBarcodeScannerBase { | ||
constructor() { | ||
super(...arguments); | ||
this.inverseThrottle = 0; | ||
} | ||
MLKitBarcodeScanner.prototype.disposeNativeView = function () { | ||
_super.prototype.disposeNativeView.call(this); | ||
disposeNativeView() { | ||
super.disposeNativeView(); | ||
if (this.player) { | ||
@@ -22,15 +17,15 @@ this.player.release(); | ||
} | ||
}; | ||
MLKitBarcodeScanner.prototype.createDetector = function () { | ||
var formats; | ||
} | ||
createDetector() { | ||
let formats; | ||
if (this.formats) { | ||
formats = []; | ||
var requestedFormats = this.formats.split(","); | ||
requestedFormats.forEach(function (format) { return formats.push(barcodescanning_common_1.BarcodeFormat[format.trim().toUpperCase()]); }); | ||
const requestedFormats = this.formats.split(","); | ||
requestedFormats.forEach(format => formats.push(BarcodeFormat[format.trim().toUpperCase()])); | ||
} | ||
if (this.beepOnScan) { | ||
var activity = (application.android.foregroundActivity || application.android.startActivity); | ||
const activity = (application.android.foregroundActivity || application.android.startActivity); | ||
activity.setVolumeControlStream(android.media.AudioManager.STREAM_MUSIC); | ||
try { | ||
var file = application.android.context.getResources().getIdentifier("beep", "raw", application.android.context.getPackageName()); | ||
const file = application.android.context.getResources().getIdentifier("beep", "raw", application.android.context.getPackageName()); | ||
if (file === 0) { | ||
@@ -41,3 +36,3 @@ console.log("No 'beep.*' soundfile found in the resources /raw folder. There will be no audible feedback upon scanning a barcode."); | ||
this.player = new android.media.MediaPlayer(); | ||
var fileDescriptor = application.android.context.getResources().openRawResourceFd(file); | ||
const fileDescriptor = application.android.context.getResources().openRawResourceFd(file); | ||
try { | ||
@@ -62,18 +57,17 @@ this.player.setDataSource(fileDescriptor.getFileDescriptor(), fileDescriptor.getStartOffset(), fileDescriptor.getLength()); | ||
return getBarcodeDetector(formats); | ||
}; | ||
MLKitBarcodeScanner.prototype.createSuccessListener = function () { | ||
var _this = this; | ||
} | ||
createSuccessListener() { | ||
return new gmsTasks.OnSuccessListener({ | ||
onSuccess: function (barcodes) { | ||
var result = { | ||
onSuccess: barcodes => { | ||
const result = { | ||
barcodes: [] | ||
}; | ||
if (barcodes && barcodes.size() > 0) { | ||
var image = _this.lastVisionImage && _this.lastVisionImage.getBitmap ? _this.lastVisionImage.getBitmap() : null; | ||
for (var i = 0; i < barcodes.size(); i++) { | ||
var barcode = barcodes.get(i); | ||
const image = this.lastVisionImage && this.lastVisionImage.getBitmap ? this.lastVisionImage.getBitmap() : null; | ||
for (let i = 0; i < barcodes.size(); i++) { | ||
const barcode = barcodes.get(i); | ||
result.barcodes.push({ | ||
value: barcode.getRawValue(), | ||
displayValue: barcode.getDisplayValue(), | ||
format: barcodescanning_common_1.BarcodeFormat[barcode.getFormat()], | ||
format: BarcodeFormat[barcode.getFormat()], | ||
android: barcode, | ||
@@ -87,9 +81,9 @@ bounds: boundingBoxToBounds(barcode.getBoundingBox()), | ||
} | ||
if (_this.player) { | ||
_this.player.start(); | ||
if (this.player) { | ||
this.player.start(); | ||
} | ||
} | ||
_this.notify({ | ||
this.notify({ | ||
eventName: MLKitBarcodeScanner.scanResultEvent, | ||
object: _this, | ||
object: this, | ||
value: result | ||
@@ -99,4 +93,4 @@ }); | ||
}); | ||
}; | ||
MLKitBarcodeScanner.prototype.preProcessImage = function (byteArray) { | ||
} | ||
preProcessImage(byteArray) { | ||
if (this.supportInverseBarcodes && this.inverseThrottle++ % 2 === 0) { | ||
@@ -106,6 +100,4 @@ return byteArray = org.nativescript.plugins.firebase.mlkit.BitmapUtil.byteArrayBitwiseNotHelper(byteArray); | ||
return byteArray; | ||
}; | ||
return MLKitBarcodeScanner; | ||
}(barcodescanning_common_1.MLKitBarcodeScanner)); | ||
exports.MLKitBarcodeScanner = MLKitBarcodeScanner; | ||
} | ||
} | ||
function boundingBoxToBounds(rect) { | ||
@@ -125,3 +117,3 @@ return { | ||
if (formats && formats.length > 0) { | ||
var firebaseVisionBarcodeDetectorOptions = new com.google.firebase.ml.vision.barcode.FirebaseVisionBarcodeDetectorOptions.Builder() | ||
const firebaseVisionBarcodeDetectorOptions = new com.google.firebase.ml.vision.barcode.FirebaseVisionBarcodeDetectorOptions.Builder() | ||
.setBarcodeFormats(formats[0], formats) | ||
@@ -135,25 +127,25 @@ .build(); | ||
} | ||
function scanBarcodesOnDevice(options) { | ||
return new Promise(function (resolve, reject) { | ||
export function scanBarcodesOnDevice(options) { | ||
return new Promise((resolve, reject) => { | ||
try { | ||
var firebaseVisionBarcodeDetector_1 = getBarcodeDetector(options.formats); | ||
var image_1 = options.image instanceof image_source_1.ImageSource ? options.image.android : options.image.imageSource.android; | ||
var firImage = com.google.firebase.ml.vision.common.FirebaseVisionImage.fromBitmap(image_1); | ||
var onSuccessListener = new gmsTasks.OnSuccessListener({ | ||
onSuccess: function (barcodes) { | ||
var result = { | ||
const firebaseVisionBarcodeDetector = getBarcodeDetector(options.formats); | ||
const image = options.image instanceof ImageSource ? options.image.android : options.image.imageSource.android; | ||
const firImage = com.google.firebase.ml.vision.common.FirebaseVisionImage.fromBitmap(image); | ||
const onSuccessListener = new gmsTasks.OnSuccessListener({ | ||
onSuccess: barcodes => { | ||
const result = { | ||
barcodes: [] | ||
}; | ||
if (barcodes) { | ||
for (var i = 0; i < barcodes.size(); i++) { | ||
var barcode = barcodes.get(i); | ||
for (let i = 0; i < barcodes.size(); i++) { | ||
const barcode = barcodes.get(i); | ||
result.barcodes.push({ | ||
value: barcode.getRawValue(), | ||
displayValue: barcode.getDisplayValue(), | ||
format: barcodescanning_common_1.BarcodeFormat[barcode.getFormat()], | ||
format: BarcodeFormat[barcode.getFormat()], | ||
android: barcode, | ||
bounds: boundingBoxToBounds(barcode.getBoundingBox()), | ||
image: { | ||
width: image_1.getWidth(), | ||
height: image_1.getHeight() | ||
width: image.getWidth(), | ||
height: image.getHeight() | ||
} | ||
@@ -164,9 +156,9 @@ }); | ||
resolve(result); | ||
firebaseVisionBarcodeDetector_1.close(); | ||
firebaseVisionBarcodeDetector.close(); | ||
} | ||
}); | ||
var onFailureListener = new gmsTasks.OnFailureListener({ | ||
onFailure: function (exception) { return reject(exception.getMessage()); } | ||
const onFailureListener = new gmsTasks.OnFailureListener({ | ||
onFailure: exception => reject(exception.getMessage()) | ||
}); | ||
firebaseVisionBarcodeDetector_1 | ||
firebaseVisionBarcodeDetector | ||
.detectInImage(firImage) | ||
@@ -182,2 +174,1 @@ .addOnSuccessListener(onSuccessListener) | ||
} | ||
exports.scanBarcodesOnDevice = scanBarcodesOnDevice; |
@@ -1,25 +0,20 @@ | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.scanBarcodesOnDevice = exports.MLKitBarcodeScanner = exports.BarcodeFormat = void 0; | ||
var image_source_1 = require("@nativescript/core/image-source"); | ||
var utils_1 = require("@nativescript/core/utils/utils"); | ||
var barcodescanning_common_1 = require("./barcodescanning-common"); | ||
Object.defineProperty(exports, "BarcodeFormat", { enumerable: true, get: function () { return barcodescanning_common_1.BarcodeFormat; } }); | ||
var MLKitBarcodeScanner = (function (_super) { | ||
__extends(MLKitBarcodeScanner, _super); | ||
function MLKitBarcodeScanner() { | ||
var _this = _super !== null && _super.apply(this, arguments) || this; | ||
_this.inverseThrottle = 0; | ||
return _this; | ||
import { ImageSource } from "@nativescript/core/image-source"; | ||
import { iOSNativeHelper as iosUtils } from "@nativescript/core/utils/utils"; | ||
import { BarcodeFormat, MLKitBarcodeScanner as MLKitBarcodeScannerBase } from "./barcodescanning-common"; | ||
export { BarcodeFormat }; | ||
export class MLKitBarcodeScanner extends MLKitBarcodeScannerBase { | ||
constructor() { | ||
super(...arguments); | ||
this.inverseThrottle = 0; | ||
} | ||
MLKitBarcodeScanner.prototype.createDetector = function () { | ||
var formats; | ||
createDetector() { | ||
let formats; | ||
if (this.formats) { | ||
formats = []; | ||
var requestedFormats = this.formats.split(","); | ||
requestedFormats.forEach(function (format) { return formats.push(barcodescanning_common_1.BarcodeFormat[format.trim().toUpperCase()]); }); | ||
const requestedFormats = this.formats.split(","); | ||
requestedFormats.forEach(format => formats.push(BarcodeFormat[format.trim().toUpperCase()])); | ||
} | ||
if (this.beepOnScan) { | ||
AVAudioSession.sharedInstance().setCategoryModeOptionsError(AVAudioSessionCategoryPlayback, AVAudioSessionModeDefault, 1); | ||
var barcodeBundlePath = NSBundle.bundleWithIdentifier("org.nativescript.plugin.firebase.MLKit").bundlePath; | ||
const barcodeBundlePath = NSBundle.bundleWithIdentifier("org.nativescript.plugin.firebase.MLKit").bundlePath; | ||
this.player = new AVAudioPlayer({ contentsOfURL: NSURL.fileURLWithPath(barcodeBundlePath + "/beep.caf") }); | ||
@@ -31,6 +26,5 @@ this.player.numberOfLoops = 1; | ||
return getBarcodeDetector(formats); | ||
}; | ||
MLKitBarcodeScanner.prototype.createSuccessListener = function () { | ||
var _this = this; | ||
return function (barcodes, error) { | ||
} | ||
createSuccessListener() { | ||
return (barcodes, error) => { | ||
if (error !== null) { | ||
@@ -40,17 +34,17 @@ console.log(error.localizedDescription); | ||
else if (barcodes !== null) { | ||
var result = { | ||
const result = { | ||
barcodes: [] | ||
}; | ||
for (var i = 0, l = barcodes.count; i < l; i++) { | ||
var barcode = barcodes.objectAtIndex(i); | ||
var image = _this.lastVisionImage; | ||
var imageWidth = image.size.width; | ||
var imageHeight = image.size.height; | ||
var _a = barcode.frame.origin, x = _a.x, y = _a.y; | ||
var _b = barcode.frame.size, width = _b.width, height = _b.height; | ||
for (let i = 0, l = barcodes.count; i < l; i++) { | ||
const barcode = barcodes.objectAtIndex(i); | ||
const image = this.lastVisionImage; | ||
let imageWidth = image.size.width; | ||
let imageHeight = image.size.height; | ||
let { x, y } = barcode.frame.origin; | ||
let { width, height } = barcode.frame.size; | ||
if (image) { | ||
var origX = x; | ||
var origWidth = width; | ||
var origImageWidth = imageWidth; | ||
if (utils_1.iOSNativeHelper.isLandscape()) { | ||
const origX = x; | ||
const origWidth = width; | ||
const origImageWidth = imageWidth; | ||
if (iosUtils.isLandscape()) { | ||
if (UIDevice.currentDevice.orientation === 4) { | ||
@@ -73,12 +67,12 @@ x = image.size.width - (width + x); | ||
displayValue: barcode.displayValue, | ||
format: barcodescanning_common_1.BarcodeFormat[barcode.format], | ||
format: BarcodeFormat[barcode.format], | ||
ios: barcode, | ||
bounds: { | ||
origin: { | ||
x: x, | ||
y: y | ||
x, | ||
y | ||
}, | ||
size: { | ||
width: width, | ||
height: height | ||
width, | ||
height | ||
} | ||
@@ -92,37 +86,35 @@ }, | ||
} | ||
_this.notify({ | ||
this.notify({ | ||
eventName: MLKitBarcodeScanner.scanResultEvent, | ||
object: _this, | ||
object: this, | ||
value: result | ||
}); | ||
if (barcodes.count > 0 && _this.player) { | ||
_this.player.play(); | ||
if (barcodes.count > 0 && this.player) { | ||
this.player.play(); | ||
} | ||
} | ||
}; | ||
}; | ||
MLKitBarcodeScanner.prototype.rotateRecording = function () { | ||
} | ||
rotateRecording() { | ||
return false; | ||
}; | ||
MLKitBarcodeScanner.prototype.preProcessImage = function (image) { | ||
} | ||
preProcessImage(image) { | ||
if (this.supportInverseBarcodes && this.inverseThrottle++ % 2 === 0) { | ||
var filter = CIFilter.filterWithName('CIColorInvert'); | ||
var ciImg = CIImage.alloc().initWithImage(image); | ||
const filter = CIFilter.filterWithName('CIColorInvert'); | ||
let ciImg = CIImage.alloc().initWithImage(image); | ||
filter.setValueForKey(ciImg, kCIInputImageKey); | ||
filter.setDefaults(); | ||
ciImg = filter.outputImage; | ||
var context = CIContext.alloc().init(); | ||
var cgImg = context.createCGImageFromRect(ciImg, ciImg.extent); | ||
const context = CIContext.alloc().init(); | ||
const cgImg = context.createCGImageFromRect(ciImg, ciImg.extent); | ||
image = UIImage.alloc().initWithCGImage(cgImg); | ||
} | ||
return image; | ||
}; | ||
return MLKitBarcodeScanner; | ||
}(barcodescanning_common_1.MLKitBarcodeScanner)); | ||
exports.MLKitBarcodeScanner = MLKitBarcodeScanner; | ||
} | ||
} | ||
function getBarcodeDetector(formats) { | ||
if (formats && formats.length > 0) { | ||
var barcodeFormats_1 = 0; | ||
formats.forEach(function (format) { return barcodeFormats_1 |= format; }); | ||
return FIRVision.vision().barcodeDetectorWithOptions(FIRVisionBarcodeDetectorOptions.alloc().initWithFormats(barcodeFormats_1)); | ||
let barcodeFormats = 0; | ||
formats.forEach(format => barcodeFormats |= format); | ||
return FIRVision.vision().barcodeDetectorWithOptions(FIRVisionBarcodeDetectorOptions.alloc().initWithFormats(barcodeFormats)); | ||
} | ||
@@ -133,9 +125,9 @@ else { | ||
} | ||
function scanBarcodesOnDevice(options) { | ||
return new Promise(function (resolve, reject) { | ||
export function scanBarcodesOnDevice(options) { | ||
return new Promise((resolve, reject) => { | ||
try { | ||
var barcodeDetector = getBarcodeDetector(options.formats); | ||
var image_1 = options.image instanceof image_source_1.ImageSource ? options.image.ios : options.image.imageSource.ios; | ||
var firImage = FIRVisionImage.alloc().initWithImage(image_1); | ||
barcodeDetector.detectInImageCompletion(firImage, function (barcodes, error) { | ||
const barcodeDetector = getBarcodeDetector(options.formats); | ||
const image = options.image instanceof ImageSource ? options.image.ios : options.image.imageSource.ios; | ||
const firImage = FIRVisionImage.alloc().initWithImage(image); | ||
barcodeDetector.detectInImageCompletion(firImage, (barcodes, error) => { | ||
if (error !== null) { | ||
@@ -145,16 +137,16 @@ reject(error.localizedDescription); | ||
else if (barcodes !== null) { | ||
var result = { | ||
const result = { | ||
barcodes: [] | ||
}; | ||
for (var i = 0, l = barcodes.count; i < l; i++) { | ||
var barcode = barcodes.objectAtIndex(i); | ||
for (let i = 0, l = barcodes.count; i < l; i++) { | ||
const barcode = barcodes.objectAtIndex(i); | ||
result.barcodes.push({ | ||
value: barcode.rawValue, | ||
displayValue: barcode.displayValue, | ||
format: barcodescanning_common_1.BarcodeFormat[barcode.format], | ||
format: BarcodeFormat[barcode.format], | ||
ios: barcode, | ||
bounds: barcode.frame, | ||
image: { | ||
width: image_1.size.width, | ||
height: image_1.size.height | ||
width: image.size.width, | ||
height: image.size.height | ||
} | ||
@@ -173,2 +165,1 @@ }); | ||
} | ||
exports.scanBarcodesOnDevice = scanBarcodesOnDevice; |
@@ -1,36 +0,29 @@ | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.getLabelsFromFile = exports.getLabelsFromAppFolder = exports.MLKitCustomModel = exports.maxResultsProperty = exports.modelInputTypeProperty = exports.modelInputShapeProperty = exports.labelsFileProperty = exports.localModelFileProperty = void 0; | ||
var fs = require("@nativescript/core/file-system"); | ||
var properties_1 = require("@nativescript/core/ui/core/properties"); | ||
var mlkit_cameraview_1 = require("../mlkit-cameraview"); | ||
exports.localModelFileProperty = new properties_1.Property({ | ||
import * as fs from "@nativescript/core/file-system"; | ||
import { Property } from "@nativescript/core/ui/core/properties"; | ||
import { MLKitCameraView } from "../mlkit-cameraview"; | ||
export const localModelFileProperty = new Property({ | ||
name: "localModelFile", | ||
defaultValue: null, | ||
}); | ||
exports.labelsFileProperty = new properties_1.Property({ | ||
export const labelsFileProperty = new Property({ | ||
name: "labelsFile", | ||
defaultValue: null, | ||
}); | ||
exports.modelInputShapeProperty = new properties_1.Property({ | ||
export const modelInputShapeProperty = new Property({ | ||
name: "modelInputShape", | ||
defaultValue: null, | ||
}); | ||
exports.modelInputTypeProperty = new properties_1.Property({ | ||
export const modelInputTypeProperty = new Property({ | ||
name: "modelInputType", | ||
defaultValue: null, | ||
}); | ||
exports.maxResultsProperty = new properties_1.Property({ | ||
export const maxResultsProperty = new Property({ | ||
name: "maxResults", | ||
defaultValue: 5 | ||
}); | ||
var MLKitCustomModel = (function (_super) { | ||
__extends(MLKitCustomModel, _super); | ||
function MLKitCustomModel() { | ||
return _super !== null && _super.apply(this, arguments) || this; | ||
export class MLKitCustomModel extends MLKitCameraView { | ||
[localModelFileProperty.setNative](value) { | ||
this.localModelFile = value; | ||
} | ||
MLKitCustomModel.prototype[exports.localModelFileProperty.setNative] = function (value) { | ||
this.localModelFile = value; | ||
}; | ||
MLKitCustomModel.prototype[exports.labelsFileProperty.setNative] = function (value) { | ||
[labelsFileProperty.setNative](value) { | ||
this.labelsFile = value; | ||
@@ -44,31 +37,28 @@ if (value.indexOf("~/") === 0) { | ||
} | ||
}; | ||
MLKitCustomModel.prototype[exports.maxResultsProperty.setNative] = function (value) { | ||
} | ||
[maxResultsProperty.setNative](value) { | ||
this.maxResults = parseInt(value); | ||
}; | ||
MLKitCustomModel.prototype[exports.modelInputShapeProperty.setNative] = function (value) { | ||
} | ||
[modelInputShapeProperty.setNative](value) { | ||
if ((typeof value) === "string") { | ||
this.modelInputShape = value.split(",").map(function (v) { return parseInt(v.trim()); }); | ||
this.modelInputShape = value.split(",").map(v => parseInt(v.trim())); | ||
} | ||
}; | ||
MLKitCustomModel.prototype[exports.modelInputTypeProperty.setNative] = function (value) { | ||
} | ||
[modelInputTypeProperty.setNative](value) { | ||
this.modelInputType = value; | ||
}; | ||
MLKitCustomModel.scanResultEvent = "scanResult"; | ||
return MLKitCustomModel; | ||
}(mlkit_cameraview_1.MLKitCameraView)); | ||
exports.MLKitCustomModel = MLKitCustomModel; | ||
exports.localModelFileProperty.register(MLKitCustomModel); | ||
exports.labelsFileProperty.register(MLKitCustomModel); | ||
exports.maxResultsProperty.register(MLKitCustomModel); | ||
exports.modelInputShapeProperty.register(MLKitCustomModel); | ||
exports.modelInputTypeProperty.register(MLKitCustomModel); | ||
function getLabelsFromAppFolder(labelsFile) { | ||
var labelsPath = fs.knownFolders.currentApp().path + labelsFile.substring(1); | ||
} | ||
} | ||
MLKitCustomModel.scanResultEvent = "scanResult"; | ||
localModelFileProperty.register(MLKitCustomModel); | ||
labelsFileProperty.register(MLKitCustomModel); | ||
maxResultsProperty.register(MLKitCustomModel); | ||
modelInputShapeProperty.register(MLKitCustomModel); | ||
modelInputTypeProperty.register(MLKitCustomModel); | ||
export function getLabelsFromAppFolder(labelsFile) { | ||
const labelsPath = fs.knownFolders.currentApp().path + labelsFile.substring(1); | ||
return getLabelsFromFile(labelsPath); | ||
} | ||
exports.getLabelsFromAppFolder = getLabelsFromAppFolder; | ||
function getLabelsFromFile(labelsFile) { | ||
var fileContents = fs.File.fromPath(labelsFile).readTextSync(); | ||
var lines = fileContents.split("\n"); | ||
export function getLabelsFromFile(labelsFile) { | ||
const fileContents = fs.File.fromPath(labelsFile).readTextSync(); | ||
const lines = fileContents.split("\n"); | ||
while (lines[lines.length - 1].trim() === "") { | ||
@@ -79,2 +69,1 @@ lines.pop(); | ||
} | ||
exports.getLabelsFromFile = getLabelsFromFile; |
@@ -1,19 +0,11 @@ | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.useCustomModel = exports.MLKitCustomModel = void 0; | ||
var fs = require("@nativescript/core/file-system"); | ||
var image_source_1 = require("@nativescript/core/image-source"); | ||
var custommodel_common_1 = require("./custommodel-common"); | ||
var gmsTasks = com.google.android.gms.tasks; | ||
var MLKitCustomModel = (function (_super) { | ||
__extends(MLKitCustomModel, _super); | ||
function MLKitCustomModel() { | ||
return _super !== null && _super.apply(this, arguments) || this; | ||
} | ||
MLKitCustomModel.prototype.createDetector = function () { | ||
import * as fs from "@nativescript/core/file-system"; | ||
import { ImageSource } from "@nativescript/core/image-source"; | ||
import { getLabelsFromAppFolder, MLKitCustomModel as MLKitCustomModelBase } from "./custommodel-common"; | ||
const gmsTasks = com.google.android.gms.tasks; | ||
export class MLKitCustomModel extends MLKitCustomModelBase { | ||
createDetector() { | ||
this.detector = getInterpreter(this.localModelFile); | ||
return this.detector; | ||
}; | ||
MLKitCustomModel.prototype.runDetector = function (imageByteBuffer, previewWidth, previewHeight) { | ||
var _this = this; | ||
} | ||
runDetector(imageByteBuffer, previewWidth, previewHeight) { | ||
if (this.detectorBusy) { | ||
@@ -25,13 +17,13 @@ return; | ||
this.onFailureListener = new gmsTasks.OnFailureListener({ | ||
onFailure: function (exception) { | ||
onFailure: exception => { | ||
console.log(exception.getMessage()); | ||
_this.detectorBusy = false; | ||
this.detectorBusy = false; | ||
} | ||
}); | ||
} | ||
var modelExpectsWidth = this.modelInputShape[1]; | ||
var modelExpectsHeight = this.modelInputShape[2]; | ||
var isQuantized = this.modelInputType !== "FLOAT32"; | ||
const modelExpectsWidth = this.modelInputShape[1]; | ||
const modelExpectsHeight = this.modelInputShape[2]; | ||
const isQuantized = this.modelInputType !== "FLOAT32"; | ||
if (!this.inputOutputOptions) { | ||
var intArrayIn = Array.create("int", 4); | ||
let intArrayIn = Array.create("int", 4); | ||
intArrayIn[0] = this.modelInputShape[0]; | ||
@@ -41,4 +33,4 @@ intArrayIn[1] = modelExpectsWidth; | ||
intArrayIn[3] = this.modelInputShape[3]; | ||
var inputType = isQuantized ? com.google.firebase.ml.custom.FirebaseModelDataType.BYTE : com.google.firebase.ml.custom.FirebaseModelDataType.FLOAT32; | ||
var intArrayOut = Array.create("int", 2); | ||
const inputType = isQuantized ? com.google.firebase.ml.custom.FirebaseModelDataType.BYTE : com.google.firebase.ml.custom.FirebaseModelDataType.FLOAT32; | ||
let intArrayOut = Array.create("int", 2); | ||
intArrayOut[0] = 1; | ||
@@ -51,4 +43,4 @@ intArrayOut[1] = this.labels.length; | ||
} | ||
var input = org.nativescript.plugins.firebase.mlkit.BitmapUtil.byteBufferToByteBuffer(imageByteBuffer, previewWidth, previewHeight, modelExpectsWidth, modelExpectsHeight, isQuantized); | ||
var inputs = new com.google.firebase.ml.custom.FirebaseModelInputs.Builder() | ||
const input = org.nativescript.plugins.firebase.mlkit.BitmapUtil.byteBufferToByteBuffer(imageByteBuffer, previewWidth, previewHeight, modelExpectsWidth, modelExpectsHeight, isQuantized); | ||
const inputs = new com.google.firebase.ml.custom.FirebaseModelInputs.Builder() | ||
.add(input) | ||
@@ -60,34 +52,31 @@ .build(); | ||
.addOnFailureListener(this.onFailureListener); | ||
}; | ||
MLKitCustomModel.prototype.createSuccessListener = function () { | ||
var _this = this; | ||
} | ||
createSuccessListener() { | ||
this.onSuccessListener = new gmsTasks.OnSuccessListener({ | ||
onSuccess: function (output) { | ||
var probabilities = output.getOutput(0)[0]; | ||
if (_this.labels.length !== probabilities.length) { | ||
console.log("The number of labels (" + _this.labels.length + ") is not equal to the interpretation result (" + probabilities.length + ")!"); | ||
onSuccess: output => { | ||
const probabilities = output.getOutput(0)[0]; | ||
if (this.labels.length !== probabilities.length) { | ||
console.log(`The number of labels (${this.labels.length}) is not equal to the interpretation result (${probabilities.length})!`); | ||
return; | ||
} | ||
var result = { | ||
result: getSortedResult(_this.labels, probabilities, _this.maxResults) | ||
const result = { | ||
result: getSortedResult(this.labels, probabilities, this.maxResults) | ||
}; | ||
_this.notify({ | ||
this.notify({ | ||
eventName: MLKitCustomModel.scanResultEvent, | ||
object: _this, | ||
object: this, | ||
value: result | ||
}); | ||
_this.detectorBusy = false; | ||
this.detectorBusy = false; | ||
} | ||
}); | ||
return this.onSuccessListener; | ||
}; | ||
return MLKitCustomModel; | ||
}(custommodel_common_1.MLKitCustomModel)); | ||
exports.MLKitCustomModel = MLKitCustomModel; | ||
var registeredModels = []; | ||
} | ||
} | ||
const registeredModels = []; | ||
function getInterpreter(localModelFile) { | ||
var localModelName = localModelFile.lastIndexOf("/") === -1 ? localModelFile : localModelFile.substring(localModelFile.lastIndexOf("/") + 1); | ||
var localModelRegistrationSuccess = false; | ||
const localModelName = localModelFile.lastIndexOf("/") === -1 ? localModelFile : localModelFile.substring(localModelFile.lastIndexOf("/") + 1); | ||
let localModelRegistrationSuccess = false; | ||
if (localModelFile) { | ||
var localModelBuilder = new com.google.firebase.ml.custom.FirebaseCustomLocalModel.Builder(); | ||
const localModelBuilder = new com.google.firebase.ml.custom.FirebaseCustomLocalModel.Builder(); | ||
if (localModelFile.indexOf("~/") === 0) { | ||
@@ -99,3 +88,3 @@ localModelBuilder.setFilePath(fs.knownFolders.currentApp().path + localModelFile.substring(1)); | ||
} | ||
var firModelOptions = new com.google.firebase.ml.custom.FirebaseModelInterpreterOptions.Builder(localModelBuilder.build()).build(); | ||
const firModelOptions = new com.google.firebase.ml.custom.FirebaseModelInterpreterOptions.Builder(localModelBuilder.build()).build(); | ||
return com.google.firebase.ml.custom.FirebaseModelInterpreter.getInstance(firModelOptions); | ||
@@ -105,9 +94,9 @@ } | ||
} | ||
function useCustomModel(options) { | ||
return new Promise(function (resolve, reject) { | ||
export function useCustomModel(options) { | ||
return new Promise((resolve, reject) => { | ||
try { | ||
var interpreter_1 = getInterpreter(options.localModelFile); | ||
var labels_1; | ||
const interpreter = getInterpreter(options.localModelFile); | ||
let labels; | ||
if (options.labelsFile.indexOf("~/") === 0) { | ||
labels_1 = custommodel_common_1.getLabelsFromAppFolder(options.labelsFile); | ||
labels = getLabelsFromAppFolder(options.labelsFile); | ||
} | ||
@@ -118,20 +107,20 @@ else { | ||
} | ||
var onSuccessListener = new gmsTasks.OnSuccessListener({ | ||
onSuccess: function (output) { | ||
var probabilities = output.getOutput(0)[0]; | ||
if (labels_1.length !== probabilities.length) { | ||
console.log("The number of labels in " + options.labelsFile + " (" + labels_1.length + ") is not equal to the interpretation result (" + probabilities.length + ")!"); | ||
const onSuccessListener = new gmsTasks.OnSuccessListener({ | ||
onSuccess: output => { | ||
const probabilities = output.getOutput(0)[0]; | ||
if (labels.length !== probabilities.length) { | ||
console.log(`The number of labels in ${options.labelsFile} (${labels.length}) is not equal to the interpretation result (${probabilities.length})!`); | ||
return; | ||
} | ||
var result = { | ||
result: getSortedResult(labels_1, probabilities, options.maxResults) | ||
const result = { | ||
result: getSortedResult(labels, probabilities, options.maxResults) | ||
}; | ||
resolve(result); | ||
interpreter_1.close(); | ||
interpreter.close(); | ||
} | ||
}); | ||
var onFailureListener = new gmsTasks.OnFailureListener({ | ||
onFailure: function (exception) { return reject(exception.getMessage()); } | ||
const onFailureListener = new gmsTasks.OnFailureListener({ | ||
onFailure: exception => reject(exception.getMessage()) | ||
}); | ||
var intArrayIn = Array.create("int", 4); | ||
let intArrayIn = Array.create("int", 4); | ||
intArrayIn[0] = options.modelInput[0].shape[0]; | ||
@@ -141,17 +130,17 @@ intArrayIn[1] = options.modelInput[0].shape[1]; | ||
intArrayIn[3] = options.modelInput[0].shape[3]; | ||
var isQuantized = options.modelInput[0].type !== "FLOAT32"; | ||
var inputType = isQuantized ? com.google.firebase.ml.custom.FirebaseModelDataType.BYTE : com.google.firebase.ml.custom.FirebaseModelDataType.FLOAT32; | ||
var intArrayOut = Array.create("int", 2); | ||
const isQuantized = options.modelInput[0].type !== "FLOAT32"; | ||
const inputType = isQuantized ? com.google.firebase.ml.custom.FirebaseModelDataType.BYTE : com.google.firebase.ml.custom.FirebaseModelDataType.FLOAT32; | ||
let intArrayOut = Array.create("int", 2); | ||
intArrayOut[0] = 1; | ||
intArrayOut[1] = labels_1.length; | ||
var inputOutputOptions = new com.google.firebase.ml.custom.FirebaseModelInputOutputOptions.Builder() | ||
intArrayOut[1] = labels.length; | ||
const inputOutputOptions = new com.google.firebase.ml.custom.FirebaseModelInputOutputOptions.Builder() | ||
.setInputFormat(0, inputType, intArrayIn) | ||
.setOutputFormat(0, inputType, intArrayOut) | ||
.build(); | ||
var image = options.image instanceof image_source_1.ImageSource ? options.image.android : options.image.imageSource.android; | ||
var input = org.nativescript.plugins.firebase.mlkit.BitmapUtil.bitmapToByteBuffer(image, options.modelInput[0].shape[1], options.modelInput[0].shape[2], isQuantized); | ||
var inputs = new com.google.firebase.ml.custom.FirebaseModelInputs.Builder() | ||
const image = options.image instanceof ImageSource ? options.image.android : options.image.imageSource.android; | ||
const input = org.nativescript.plugins.firebase.mlkit.BitmapUtil.bitmapToByteBuffer(image, options.modelInput[0].shape[1], options.modelInput[0].shape[2], isQuantized); | ||
const inputs = new com.google.firebase.ml.custom.FirebaseModelInputs.Builder() | ||
.add(input) | ||
.build(); | ||
interpreter_1 | ||
interpreter | ||
.run(inputs, inputOutputOptions) | ||
@@ -167,13 +156,11 @@ .addOnSuccessListener(onSuccessListener) | ||
} | ||
exports.useCustomModel = useCustomModel; | ||
function getSortedResult(labels, probabilities, maxResults) { | ||
if (maxResults === void 0) { maxResults = 5; } | ||
var result = []; | ||
labels.forEach(function (text, i) { return result.push({ text: text, confidence: probabilities[i] }); }); | ||
result.sort(function (a, b) { return a.confidence < b.confidence ? 1 : (a.confidence === b.confidence ? 0 : -1); }); | ||
function getSortedResult(labels, probabilities, maxResults = 5) { | ||
const result = []; | ||
labels.forEach((text, i) => result.push({ text, confidence: probabilities[i] })); | ||
result.sort((a, b) => a.confidence < b.confidence ? 1 : (a.confidence === b.confidence ? 0 : -1)); | ||
if (result.length > maxResults) { | ||
result.splice(maxResults); | ||
} | ||
result.map(function (r) { return r.confidence = (r.confidence & 0xff) / 255.0; }); | ||
result.map(r => r.confidence = (r.confidence & 0xff) / 255.0); | ||
return result; | ||
} |
@@ -1,29 +0,21 @@ | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.useCustomModel = exports.MLKitCustomModel = void 0; | ||
var fs = require("@nativescript/core/file-system"); | ||
var image_source_1 = require("@nativescript/core/image-source"); | ||
var custommodel_common_1 = require("./custommodel-common"); | ||
var MLKitCustomModel = (function (_super) { | ||
__extends(MLKitCustomModel, _super); | ||
function MLKitCustomModel() { | ||
return _super !== null && _super.apply(this, arguments) || this; | ||
} | ||
MLKitCustomModel.prototype.createDetector = function () { | ||
import * as fs from "@nativescript/core/file-system"; | ||
import { ImageSource } from "@nativescript/core/image-source"; | ||
import { getLabelsFromAppFolder, getLabelsFromFile, MLKitCustomModel as MLKitCustomModelBase } from "./custommodel-common"; | ||
export class MLKitCustomModel extends MLKitCustomModelBase { | ||
createDetector() { | ||
this.modelInterpreter = getInterpreter(this.localModelFile); | ||
return this.modelInterpreter; | ||
}; | ||
MLKitCustomModel.prototype.runDetector = function (image, onComplete) { | ||
var _this = this; | ||
var modelExpectsWidth = this.modelInputShape[1]; | ||
var modelExpectsHeight = this.modelInputShape[2]; | ||
var isQuantized = this.modelInputType !== "FLOAT32"; | ||
} | ||
runDetector(image, onComplete) { | ||
const modelExpectsWidth = this.modelInputShape[1]; | ||
const modelExpectsHeight = this.modelInputShape[2]; | ||
const isQuantized = this.modelInputType !== "FLOAT32"; | ||
if (!this.inputOutputOptions) { | ||
this.inputOutputOptions = FIRModelInputOutputOptions.new(); | ||
var inputType = void 0; | ||
var arrIn_1 = NSMutableArray.new(); | ||
this.modelInputShape.forEach(function (dim) { return arrIn_1.addObject(dim); }); | ||
let inputType; | ||
const arrIn = NSMutableArray.new(); | ||
this.modelInputShape.forEach(dim => arrIn.addObject(dim)); | ||
inputType = isQuantized ? 3 : 1; | ||
this.inputOutputOptions.setInputFormatForIndexTypeDimensionsError(0, inputType, arrIn_1); | ||
var arrOut = NSMutableArray.new(); | ||
this.inputOutputOptions.setInputFormatForIndexTypeDimensionsError(0, inputType, arrIn); | ||
const arrOut = NSMutableArray.new(); | ||
arrOut.addObject(1); | ||
@@ -33,3 +25,3 @@ arrOut.addObject(this.labels.length); | ||
} | ||
var inputData; | ||
let inputData; | ||
if (isQuantized) { | ||
@@ -41,5 +33,5 @@ inputData = TNSMLKitCameraView.scaledDataWithSizeByteCountIsQuantized(image, CGSizeMake(modelExpectsWidth, modelExpectsHeight), modelExpectsWidth * modelExpectsHeight * this.modelInputShape[3] * this.modelInputShape[0], isQuantized); | ||
} | ||
var inputs = FIRModelInputs.new(); | ||
const inputs = FIRModelInputs.new(); | ||
inputs.addInputError(inputData); | ||
this.modelInterpreter.runWithInputsOptionsCompletion(inputs, this.inputOutputOptions, function (outputs, error) { | ||
this.modelInterpreter.runWithInputsOptionsCompletion(inputs, this.inputOutputOptions, (outputs, error) => { | ||
if (error !== null) { | ||
@@ -49,14 +41,14 @@ console.log(error.localizedDescription); | ||
else if (outputs !== null) { | ||
var probabilities = outputs.outputAtIndexError(0)[0]; | ||
if (_this.labels.length !== probabilities.count) { | ||
console.log("The number of labels (" + _this.labels.length + ") is not equal to the interpretation result (" + probabilities.count + ")!"); | ||
const probabilities = outputs.outputAtIndexError(0)[0]; | ||
if (this.labels.length !== probabilities.count) { | ||
console.log(`The number of labels (${this.labels.length}) is not equal to the interpretation result (${probabilities.count})!`); | ||
onComplete(); | ||
} | ||
else { | ||
var result = { | ||
result: getSortedResult(_this.labels, probabilities, _this.maxResults) | ||
const result = { | ||
result: getSortedResult(this.labels, probabilities, this.maxResults) | ||
}; | ||
_this.notify({ | ||
this.notify({ | ||
eventName: MLKitCustomModel.scanResultEvent, | ||
object: _this, | ||
object: this, | ||
value: result | ||
@@ -68,6 +60,5 @@ }); | ||
}); | ||
}; | ||
MLKitCustomModel.prototype.createSuccessListener = function () { | ||
var _this = this; | ||
return function (outputs, error) { | ||
} | ||
createSuccessListener() { | ||
return (outputs, error) => { | ||
if (error !== null) { | ||
@@ -77,9 +68,9 @@ console.log(error.localizedDescription); | ||
else if (outputs !== null) { | ||
var result = { | ||
const result = { | ||
result: [] | ||
}; | ||
console.log(">>> outputs: " + outputs); | ||
_this.notify({ | ||
this.notify({ | ||
eventName: MLKitCustomModel.scanResultEvent, | ||
object: _this, | ||
object: this, | ||
value: result | ||
@@ -89,12 +80,10 @@ }); | ||
}; | ||
}; | ||
MLKitCustomModel.prototype.rotateRecording = function () { | ||
} | ||
rotateRecording() { | ||
return false; | ||
}; | ||
return MLKitCustomModel; | ||
}(custommodel_common_1.MLKitCustomModel)); | ||
exports.MLKitCustomModel = MLKitCustomModel; | ||
} | ||
} | ||
function getInterpreter(localModelFile) { | ||
if (localModelFile) { | ||
var localModelFilePath = void 0; | ||
let localModelFilePath; | ||
if (localModelFile.indexOf("~/") === 0) { | ||
@@ -106,3 +95,3 @@ localModelFilePath = fs.knownFolders.currentApp().path + localModelFile.substring(1); | ||
} | ||
var localModel = FIRCustomLocalModel.alloc().initWithModelPath(localModelFilePath); | ||
const localModel = FIRCustomLocalModel.alloc().initWithModelPath(localModelFilePath); | ||
if (localModel) { | ||
@@ -117,8 +106,8 @@ return FIRModelInterpreter.modelInterpreterForLocalModel(localModel); | ||
} | ||
function useCustomModel(options) { | ||
return new Promise(function (resolve, reject) { | ||
export function useCustomModel(options) { | ||
return new Promise((resolve, reject) => { | ||
try { | ||
var image = options.image instanceof image_source_1.ImageSource ? options.image.ios : options.image.imageSource.ios; | ||
var isQuant = options.modelInput[0].type !== "FLOAT32"; | ||
var inputData = void 0; | ||
const image = options.image instanceof ImageSource ? options.image.ios : options.image.imageSource.ios; | ||
const isQuant = options.modelInput[0].type !== "FLOAT32"; | ||
let inputData; | ||
if (isQuant) { | ||
@@ -130,26 +119,26 @@ inputData = TNSMLKitCameraView.scaledDataWithSizeByteCountIsQuantized(image, CGSizeMake(options.modelInput[0].shape[1], options.modelInput[0].shape[2]), options.modelInput[0].shape[1] * options.modelInput[0].shape[2] * options.modelInput[0].shape[3] * options.modelInput[0].shape[0], options.modelInput[0].type !== "FLOAT32"); | ||
} | ||
var inputs = FIRModelInputs.new(); | ||
const inputs = FIRModelInputs.new(); | ||
inputs.addInputError(inputData); | ||
var inputOptions_1 = FIRModelInputOutputOptions.new(); | ||
var inputType_1; | ||
options.modelInput.forEach(function (dimensionAndType, i) { | ||
var arrIn = NSMutableArray.new(); | ||
dimensionAndType.shape.forEach(function (dim) { return arrIn.addObject(dim); }); | ||
inputType_1 = dimensionAndType.type === "FLOAT32" ? 1 : 3; | ||
inputOptions_1.setInputFormatForIndexTypeDimensionsError(i, inputType_1, arrIn); | ||
const inputOptions = FIRModelInputOutputOptions.new(); | ||
let inputType; | ||
options.modelInput.forEach((dimensionAndType, i) => { | ||
const arrIn = NSMutableArray.new(); | ||
dimensionAndType.shape.forEach(dim => arrIn.addObject(dim)); | ||
inputType = dimensionAndType.type === "FLOAT32" ? 1 : 3; | ||
inputOptions.setInputFormatForIndexTypeDimensionsError(i, inputType, arrIn); | ||
}); | ||
var labels_1; | ||
let labels; | ||
if (options.labelsFile.indexOf("~/") === 0) { | ||
labels_1 = custommodel_common_1.getLabelsFromAppFolder(options.labelsFile); | ||
labels = getLabelsFromAppFolder(options.labelsFile); | ||
} | ||
else { | ||
var labelsFile = NSBundle.mainBundle.pathForResourceOfType(options.labelsFile.substring(0, options.labelsFile.lastIndexOf(".")), options.labelsFile.substring(options.labelsFile.lastIndexOf(".") + 1)); | ||
labels_1 = custommodel_common_1.getLabelsFromFile(labelsFile); | ||
const labelsFile = NSBundle.mainBundle.pathForResourceOfType(options.labelsFile.substring(0, options.labelsFile.lastIndexOf(".")), options.labelsFile.substring(options.labelsFile.lastIndexOf(".") + 1)); | ||
labels = getLabelsFromFile(labelsFile); | ||
} | ||
var arrOut = NSMutableArray.new(); | ||
const arrOut = NSMutableArray.new(); | ||
arrOut.addObject(1); | ||
arrOut.addObject(labels_1.length); | ||
inputOptions_1.setOutputFormatForIndexTypeDimensionsError(0, inputType_1, arrOut); | ||
var modelInterpreter = getInterpreter(options.localModelFile); | ||
modelInterpreter.runWithInputsOptionsCompletion(inputs, inputOptions_1, function (outputs, error) { | ||
arrOut.addObject(labels.length); | ||
inputOptions.setOutputFormatForIndexTypeDimensionsError(0, inputType, arrOut); | ||
const modelInterpreter = getInterpreter(options.localModelFile); | ||
modelInterpreter.runWithInputsOptionsCompletion(inputs, inputOptions, (outputs, error) => { | ||
if (error !== null) { | ||
@@ -159,9 +148,9 @@ reject(error.localizedDescription); | ||
else if (outputs !== null) { | ||
var probabilities = outputs.outputAtIndexError(0)[0]; | ||
if (labels_1.length !== probabilities.count) { | ||
console.log("The number of labels in " + options.labelsFile + " (" + labels_1.length + ") is not equal to the interpretation result (" + probabilities.count + ")!"); | ||
const probabilities = outputs.outputAtIndexError(0)[0]; | ||
if (labels.length !== probabilities.count) { | ||
console.log(`The number of labels in ${options.labelsFile} (${labels.length}) is not equal to the interpretation result (${probabilities.count})!`); | ||
return; | ||
} | ||
var result = { | ||
result: getSortedResult(labels_1, probabilities, options.maxResults) | ||
const result = { | ||
result: getSortedResult(labels, probabilities, options.maxResults) | ||
}; | ||
@@ -178,14 +167,12 @@ resolve(result); | ||
} | ||
exports.useCustomModel = useCustomModel; | ||
function getSortedResult(labels, probabilities, maxResults) { | ||
if (maxResults === void 0) { maxResults = 5; } | ||
var result = []; | ||
labels.forEach(function (text, i) { return result.push({ text: text, confidence: probabilities.objectAtIndex(i) }); }); | ||
result.sort(function (a, b) { return a.confidence < b.confidence ? 1 : (a.confidence === b.confidence ? 0 : -1); }); | ||
function getSortedResult(labels, probabilities, maxResults = 5) { | ||
const result = []; | ||
labels.forEach((text, i) => result.push({ text, confidence: probabilities.objectAtIndex(i) })); | ||
result.sort((a, b) => a.confidence < b.confidence ? 1 : (a.confidence === b.confidence ? 0 : -1)); | ||
if (result.length > maxResults) { | ||
result.splice(maxResults); | ||
} | ||
var softmaxScale = 1.0 / 256.0; | ||
result.map(function (r) { return r.confidence = NSNumber.numberWithFloat(softmaxScale * r.confidence); }); | ||
const softmaxScale = 1.0 / 256.0; | ||
result.map(r => r.confidence = NSNumber.numberWithFloat(softmaxScale * r.confidence)); | ||
return result; | ||
} |
@@ -1,18 +0,15 @@ | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.MLKitFaceDetection = exports.detectionModeProperty = exports.enableFaceTrackingProperty = exports.minimumFaceSizeProperty = void 0; | ||
var view_base_1 = require("@nativescript/core/ui/core/view-base"); | ||
var properties_1 = require("@nativescript/core/ui/core/properties"); | ||
var mlkit_cameraview_1 = require("../mlkit-cameraview"); | ||
exports.minimumFaceSizeProperty = new properties_1.Property({ | ||
import { booleanConverter } from "@nativescript/core/ui/core/view-base"; | ||
import { Property, makeParser, makeValidator } from "@nativescript/core/ui/core/properties"; | ||
import { MLKitCameraView } from "../mlkit-cameraview"; | ||
export const minimumFaceSizeProperty = new Property({ | ||
name: "minimumFaceSize", | ||
defaultValue: 0.1 | ||
}); | ||
exports.enableFaceTrackingProperty = new properties_1.Property({ | ||
export const enableFaceTrackingProperty = new Property({ | ||
name: "enableFaceTracking", | ||
defaultValue: false, | ||
valueConverter: view_base_1.booleanConverter | ||
valueConverter: booleanConverter | ||
}); | ||
var detectionModeConverter = properties_1.makeParser(properties_1.makeValidator("accurate", "fast")); | ||
exports.detectionModeProperty = new properties_1.Property({ | ||
const detectionModeConverter = makeParser(makeValidator("accurate", "fast")); | ||
export const detectionModeProperty = new Property({ | ||
name: "detectionMode", | ||
@@ -22,22 +19,16 @@ defaultValue: "fast", | ||
}); | ||
var MLKitFaceDetection = (function (_super) { | ||
__extends(MLKitFaceDetection, _super); | ||
function MLKitFaceDetection() { | ||
return _super !== null && _super.apply(this, arguments) || this; | ||
export class MLKitFaceDetection extends MLKitCameraView { | ||
[minimumFaceSizeProperty.setNative](value) { | ||
this.minimumFaceSize = value; | ||
} | ||
MLKitFaceDetection.prototype[exports.minimumFaceSizeProperty.setNative] = function (value) { | ||
this.minimumFaceSize = value; | ||
}; | ||
MLKitFaceDetection.prototype[exports.enableFaceTrackingProperty.setNative] = function (value) { | ||
[enableFaceTrackingProperty.setNative](value) { | ||
this.enableFaceTracking = value; | ||
}; | ||
MLKitFaceDetection.prototype[exports.detectionModeProperty.setNative] = function (value) { | ||
} | ||
[detectionModeProperty.setNative](value) { | ||
this.detectionMode = value; | ||
}; | ||
MLKitFaceDetection.scanResultEvent = "scanResult"; | ||
return MLKitFaceDetection; | ||
}(mlkit_cameraview_1.MLKitCameraView)); | ||
exports.MLKitFaceDetection = MLKitFaceDetection; | ||
exports.minimumFaceSizeProperty.register(MLKitFaceDetection); | ||
exports.enableFaceTrackingProperty.register(MLKitFaceDetection); | ||
exports.detectionModeProperty.register(MLKitFaceDetection); | ||
} | ||
} | ||
MLKitFaceDetection.scanResultEvent = "scanResult"; | ||
minimumFaceSizeProperty.register(MLKitFaceDetection); | ||
enableFaceTrackingProperty.register(MLKitFaceDetection); | ||
detectionModeProperty.register(MLKitFaceDetection); |
@@ -1,13 +0,6 @@ | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.detectFacesOnDevice = exports.MLKitFaceDetection = void 0; | ||
var image_source_1 = require("@nativescript/core/image-source"); | ||
var facedetection_common_1 = require("./facedetection-common"); | ||
var gmsTasks = com.google.android.gms.tasks; | ||
var MLKitFaceDetection = (function (_super) { | ||
__extends(MLKitFaceDetection, _super); | ||
function MLKitFaceDetection() { | ||
return _super !== null && _super.apply(this, arguments) || this; | ||
} | ||
MLKitFaceDetection.prototype.createDetector = function () { | ||
import { ImageSource } from "@nativescript/core/image-source"; | ||
import { MLKitFaceDetection as MLKitFaceDetectionBase } from "./facedetection-common"; | ||
const gmsTasks = com.google.android.gms.tasks; | ||
export class MLKitFaceDetection extends MLKitFaceDetectionBase { | ||
createDetector() { | ||
return getFaceDetector({ | ||
@@ -18,14 +11,13 @@ detectionMode: this.detectionMode, | ||
}); | ||
}; | ||
MLKitFaceDetection.prototype.createSuccessListener = function () { | ||
var _this = this; | ||
} | ||
createSuccessListener() { | ||
return new gmsTasks.OnSuccessListener({ | ||
onSuccess: function (faces) { | ||
onSuccess: faces => { | ||
if (!faces || faces.size() === 0) | ||
return; | ||
var result = { | ||
const result = { | ||
faces: [] | ||
}; | ||
for (var i = 0; i < faces.size(); i++) { | ||
var face = faces.get(i); | ||
for (let i = 0; i < faces.size(); i++) { | ||
const face = faces.get(i); | ||
result.faces.push({ | ||
@@ -41,5 +33,5 @@ bounds: boundingBoxToBounds(face.getBoundingBox()), | ||
} | ||
_this.notify({ | ||
this.notify({ | ||
eventName: MLKitFaceDetection.scanResultEvent, | ||
object: _this, | ||
object: this, | ||
value: result | ||
@@ -49,8 +41,6 @@ }); | ||
}); | ||
}; | ||
return MLKitFaceDetection; | ||
}(facedetection_common_1.MLKitFaceDetection)); | ||
exports.MLKitFaceDetection = MLKitFaceDetection; | ||
} | ||
} | ||
function getFaceDetector(options) { | ||
var builder = new com.google.firebase.ml.vision.face.FirebaseVisionFaceDetectorOptions.Builder() | ||
const builder = new com.google.firebase.ml.vision.face.FirebaseVisionFaceDetectorOptions.Builder() | ||
.setPerformanceMode(options.detectionMode === "accurate" ? com.google.firebase.ml.vision.face.FirebaseVisionFaceDetectorOptions.ACCURATE : com.google.firebase.ml.vision.face.FirebaseVisionFaceDetectorOptions.FAST) | ||
@@ -77,14 +67,14 @@ .setLandmarkMode(com.google.firebase.ml.vision.face.FirebaseVisionFaceDetectorOptions.ALL_LANDMARKS) | ||
} | ||
function detectFacesOnDevice(options) { | ||
return new Promise(function (resolve, reject) { | ||
export function detectFacesOnDevice(options) { | ||
return new Promise((resolve, reject) => { | ||
try { | ||
var firebaseVisionFaceDetector_1 = getFaceDetector(options); | ||
var onSuccessListener = new gmsTasks.OnSuccessListener({ | ||
onSuccess: function (faces) { | ||
var result = { | ||
const firebaseVisionFaceDetector = getFaceDetector(options); | ||
const onSuccessListener = new gmsTasks.OnSuccessListener({ | ||
onSuccess: faces => { | ||
const result = { | ||
faces: [] | ||
}; | ||
if (faces) { | ||
for (var i = 0; i < faces.size(); i++) { | ||
var face = faces.get(i); | ||
for (let i = 0; i < faces.size(); i++) { | ||
const face = faces.get(i); | ||
result.faces.push({ | ||
@@ -102,9 +92,9 @@ bounds: boundingBoxToBounds(face.getBoundingBox()), | ||
resolve(result); | ||
firebaseVisionFaceDetector_1.close(); | ||
firebaseVisionFaceDetector.close(); | ||
} | ||
}); | ||
var onFailureListener = new gmsTasks.OnFailureListener({ | ||
onFailure: function (exception) { return reject(exception.getMessage()); } | ||
const onFailureListener = new gmsTasks.OnFailureListener({ | ||
onFailure: exception => reject(exception.getMessage()) | ||
}); | ||
firebaseVisionFaceDetector_1 | ||
firebaseVisionFaceDetector | ||
.detectInImage(getImage(options)) | ||
@@ -120,6 +110,5 @@ .addOnSuccessListener(onSuccessListener) | ||
} | ||
exports.detectFacesOnDevice = detectFacesOnDevice; | ||
function getImage(options) { | ||
var image = options.image instanceof image_source_1.ImageSource ? options.image.android : options.image.imageSource.android; | ||
const image = options.image instanceof ImageSource ? options.image.android : options.image.imageSource.android; | ||
return com.google.firebase.ml.vision.common.FirebaseVisionImage.fromBitmap(image); | ||
} |
@@ -1,13 +0,6 @@ | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.detectFacesOnDevice = exports.MLKitFaceDetection = void 0; | ||
var image_source_1 = require("@nativescript/core/image-source"); | ||
var utils_1 = require("@nativescript/core/utils/utils"); | ||
var facedetection_common_1 = require("./facedetection-common"); | ||
var MLKitFaceDetection = (function (_super) { | ||
__extends(MLKitFaceDetection, _super); | ||
function MLKitFaceDetection() { | ||
return _super !== null && _super.apply(this, arguments) || this; | ||
} | ||
MLKitFaceDetection.prototype.createDetector = function () { | ||
import { ImageSource } from "@nativescript/core/image-source"; | ||
import { iOSNativeHelper as iosUtils } from "@nativescript/core/utils/utils"; | ||
import { MLKitFaceDetection as MLKitFaceDetectionBase } from "./facedetection-common"; | ||
export class MLKitFaceDetection extends MLKitFaceDetectionBase { | ||
createDetector() { | ||
return getDetector({ | ||
@@ -18,6 +11,5 @@ detectionMode: this.detectionMode, | ||
}); | ||
}; | ||
MLKitFaceDetection.prototype.createSuccessListener = function () { | ||
var _this = this; | ||
return function (faces, error) { | ||
} | ||
createSuccessListener() { | ||
return (faces, error) => { | ||
if (error !== null) { | ||
@@ -27,7 +19,7 @@ console.log(error.localizedDescription); | ||
else if (faces !== null && faces.count > 0) { | ||
var result = { | ||
const result = { | ||
faces: [] | ||
}; | ||
for (var i = 0, l = faces.count; i < l; i++) { | ||
var face = faces.objectAtIndex(i); | ||
for (let i = 0, l = faces.count; i < l; i++) { | ||
const face = faces.objectAtIndex(i); | ||
result.faces.push({ | ||
@@ -43,5 +35,5 @@ smilingProbability: face.hasSmilingProbability ? face.smilingProbability : undefined, | ||
} | ||
_this.notify({ | ||
this.notify({ | ||
eventName: MLKitFaceDetection.scanResultEvent, | ||
object: _this, | ||
object: this, | ||
value: result | ||
@@ -51,20 +43,18 @@ }); | ||
}; | ||
}; | ||
MLKitFaceDetection.prototype.rotateRecording = function () { | ||
} | ||
rotateRecording() { | ||
return false; | ||
}; | ||
MLKitFaceDetection.prototype.getVisionOrientation = function (imageOrientation) { | ||
if (imageOrientation === 0 && !utils_1.iOSNativeHelper.isLandscape()) { | ||
} | ||
getVisionOrientation(imageOrientation) { | ||
if (imageOrientation === 0 && !iosUtils.isLandscape()) { | ||
return 6; | ||
} | ||
else { | ||
return _super.prototype.getVisionOrientation.call(this, imageOrientation); | ||
return super.getVisionOrientation(imageOrientation); | ||
} | ||
}; | ||
return MLKitFaceDetection; | ||
}(facedetection_common_1.MLKitFaceDetection)); | ||
exports.MLKitFaceDetection = MLKitFaceDetection; | ||
} | ||
} | ||
function getDetector(options) { | ||
var firVision = FIRVision.vision(); | ||
var firOptions = FIRVisionFaceDetectorOptions.new(); | ||
const firVision = FIRVision.vision(); | ||
const firOptions = FIRVisionFaceDetectorOptions.new(); | ||
firOptions.performanceMode = options.detectionMode === "accurate" ? 2 : 1; | ||
@@ -77,7 +67,7 @@ firOptions.landmarkMode = 2; | ||
} | ||
function detectFacesOnDevice(options) { | ||
return new Promise(function (resolve, reject) { | ||
export function detectFacesOnDevice(options) { | ||
return new Promise((resolve, reject) => { | ||
try { | ||
var faceDetector = getDetector(options); | ||
faceDetector.processImageCompletion(getImage(options), function (faces, error) { | ||
const faceDetector = getDetector(options); | ||
faceDetector.processImageCompletion(getImage(options), (faces, error) => { | ||
if (error !== null) { | ||
@@ -87,7 +77,7 @@ reject(error.localizedDescription); | ||
else if (faces !== null) { | ||
var result = { | ||
const result = { | ||
faces: [] | ||
}; | ||
for (var i = 0, l = faces.count; i < l; i++) { | ||
var face = faces.objectAtIndex(i); | ||
for (let i = 0, l = faces.count; i < l; i++) { | ||
const face = faces.objectAtIndex(i); | ||
result.faces.push({ | ||
@@ -113,7 +103,6 @@ smilingProbability: face.hasSmilingProbability ? face.smilingProbability : undefined, | ||
} | ||
exports.detectFacesOnDevice = detectFacesOnDevice; | ||
function getImage(options) { | ||
var image = options.image instanceof image_source_1.ImageSource ? options.image.ios : options.image.imageSource.ios; | ||
var newImage = UIImage.alloc().initWithCGImageScaleOrientation(image.CGImage, 1, 0); | ||
const image = options.image instanceof ImageSource ? options.image.ios : options.image.imageSource.ios; | ||
const newImage = UIImage.alloc().initWithCGImageScaleOrientation(image.CGImage, 1, 0); | ||
return FIRVisionImage.alloc().initWithImage(newImage); | ||
} |
@@ -1,22 +0,13 @@ | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.MLKitImageLabeling = exports.confidenceThresholdProperty = void 0; | ||
var properties_1 = require("@nativescript/core/ui/core/properties"); | ||
var mlkit_cameraview_1 = require("../mlkit-cameraview"); | ||
exports.confidenceThresholdProperty = new properties_1.Property({ | ||
import { Property } from "@nativescript/core/ui/core/properties"; | ||
import { MLKitCameraView } from "../mlkit-cameraview"; | ||
export const confidenceThresholdProperty = new Property({ | ||
name: "confidenceThreshold", | ||
defaultValue: 0.5, | ||
}); | ||
var MLKitImageLabeling = (function (_super) { | ||
__extends(MLKitImageLabeling, _super); | ||
function MLKitImageLabeling() { | ||
return _super !== null && _super.apply(this, arguments) || this; | ||
export class MLKitImageLabeling extends MLKitCameraView { | ||
[confidenceThresholdProperty.setNative](value) { | ||
this.confidenceThreshold = parseFloat(value); | ||
} | ||
MLKitImageLabeling.prototype[exports.confidenceThresholdProperty.setNative] = function (value) { | ||
this.confidenceThreshold = parseFloat(value); | ||
}; | ||
MLKitImageLabeling.scanResultEvent = "scanResult"; | ||
return MLKitImageLabeling; | ||
}(mlkit_cameraview_1.MLKitCameraView)); | ||
exports.MLKitImageLabeling = MLKitImageLabeling; | ||
exports.confidenceThresholdProperty.register(MLKitImageLabeling); | ||
} | ||
MLKitImageLabeling.scanResultEvent = "scanResult"; | ||
confidenceThresholdProperty.register(MLKitImageLabeling); |
@@ -1,25 +0,17 @@ | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.labelImageCloud = exports.labelImageOnDevice = exports.MLKitImageLabeling = void 0; | ||
var image_source_1 = require("@nativescript/core/image-source"); | ||
var imagelabeling_common_1 = require("./imagelabeling-common"); | ||
var MLKitImageLabeling = (function (_super) { | ||
__extends(MLKitImageLabeling, _super); | ||
function MLKitImageLabeling() { | ||
return _super !== null && _super.apply(this, arguments) || this; | ||
import { ImageSource } from "@nativescript/core/image-source"; | ||
import { MLKitImageLabeling as MLKitImageLabelingBase } from "./imagelabeling-common"; | ||
export class MLKitImageLabeling extends MLKitImageLabelingBase { | ||
createDetector() { | ||
return getDetector(this.confidenceThreshold); | ||
} | ||
MLKitImageLabeling.prototype.createDetector = function () { | ||
return getDetector(this.confidenceThreshold); | ||
}; | ||
MLKitImageLabeling.prototype.createSuccessListener = function () { | ||
var _this = this; | ||
createSuccessListener() { | ||
return new com.google.android.gms.tasks.OnSuccessListener({ | ||
onSuccess: function (labels) { | ||
onSuccess: labels => { | ||
if (labels.size() === 0) | ||
return; | ||
var result = { | ||
const result = { | ||
labels: [] | ||
}; | ||
for (var i = 0; i < labels.size(); i++) { | ||
var label = labels.get(i); | ||
for (let i = 0; i < labels.size(); i++) { | ||
const label = labels.get(i); | ||
result.labels.push({ | ||
@@ -30,5 +22,5 @@ text: label.getText(), | ||
} | ||
_this.notify({ | ||
this.notify({ | ||
eventName: MLKitImageLabeling.scanResultEvent, | ||
object: _this, | ||
object: this, | ||
value: result | ||
@@ -38,8 +30,6 @@ }); | ||
}); | ||
}; | ||
return MLKitImageLabeling; | ||
}(imagelabeling_common_1.MLKitImageLabeling)); | ||
exports.MLKitImageLabeling = MLKitImageLabeling; | ||
} | ||
} | ||
function getDetector(confidenceThreshold) { | ||
var labelDetectorOptions = new com.google.firebase.ml.vision.label.FirebaseVisionOnDeviceImageLabelerOptions.Builder() | ||
const labelDetectorOptions = new com.google.firebase.ml.vision.label.FirebaseVisionOnDeviceImageLabelerOptions.Builder() | ||
.setConfidenceThreshold(confidenceThreshold) | ||
@@ -49,14 +39,14 @@ .build(); | ||
} | ||
function labelImageOnDevice(options) { | ||
return new Promise(function (resolve, reject) { | ||
export function labelImageOnDevice(options) { | ||
return new Promise((resolve, reject) => { | ||
try { | ||
var firebaseVisionLabelDetector_1 = getDetector(options.confidenceThreshold || 0.5); | ||
var onSuccessListener = new com.google.android.gms.tasks.OnSuccessListener({ | ||
onSuccess: function (labels) { | ||
var result = { | ||
const firebaseVisionLabelDetector = getDetector(options.confidenceThreshold || 0.5); | ||
const onSuccessListener = new com.google.android.gms.tasks.OnSuccessListener({ | ||
onSuccess: labels => { | ||
const result = { | ||
labels: [] | ||
}; | ||
if (labels) { | ||
for (var i = 0; i < labels.size(); i++) { | ||
var label = labels.get(i); | ||
for (let i = 0; i < labels.size(); i++) { | ||
const label = labels.get(i); | ||
result.labels.push({ | ||
@@ -69,9 +59,9 @@ text: label.getText(), | ||
resolve(result); | ||
firebaseVisionLabelDetector_1.close(); | ||
firebaseVisionLabelDetector.close(); | ||
} | ||
}); | ||
var onFailureListener = new com.google.android.gms.tasks.OnFailureListener({ | ||
onFailure: function (exception) { return reject(exception.getMessage()); } | ||
const onFailureListener = new com.google.android.gms.tasks.OnFailureListener({ | ||
onFailure: exception => reject(exception.getMessage()) | ||
}); | ||
firebaseVisionLabelDetector_1 | ||
firebaseVisionLabelDetector | ||
.processImage(getImage(options)) | ||
@@ -87,18 +77,17 @@ .addOnSuccessListener(onSuccessListener) | ||
} | ||
exports.labelImageOnDevice = labelImageOnDevice; | ||
function labelImageCloud(options) { | ||
return new Promise(function (resolve, reject) { | ||
export function labelImageCloud(options) { | ||
return new Promise((resolve, reject) => { | ||
try { | ||
var cloudDetectorOptions = new com.google.firebase.ml.vision.label.FirebaseVisionCloudImageLabelerOptions.Builder() | ||
const cloudDetectorOptions = new com.google.firebase.ml.vision.label.FirebaseVisionCloudImageLabelerOptions.Builder() | ||
.setConfidenceThreshold(options.confidenceThreshold || 0.5) | ||
.build(); | ||
var firebaseVisionCloudLabelDetector_1 = com.google.firebase.ml.vision.FirebaseVision.getInstance().getCloudImageLabeler(cloudDetectorOptions); | ||
var onSuccessListener = new com.google.android.gms.tasks.OnSuccessListener({ | ||
onSuccess: function (labels) { | ||
var result = { | ||
const firebaseVisionCloudLabelDetector = com.google.firebase.ml.vision.FirebaseVision.getInstance().getCloudImageLabeler(cloudDetectorOptions); | ||
const onSuccessListener = new com.google.android.gms.tasks.OnSuccessListener({ | ||
onSuccess: labels => { | ||
const result = { | ||
labels: [] | ||
}; | ||
if (labels) { | ||
for (var i = 0; i < labels.size(); i++) { | ||
var label = labels.get(i); | ||
for (let i = 0; i < labels.size(); i++) { | ||
const label = labels.get(i); | ||
result.labels.push({ | ||
@@ -111,9 +100,9 @@ text: label.getText(), | ||
resolve(result); | ||
firebaseVisionCloudLabelDetector_1.close(); | ||
firebaseVisionCloudLabelDetector.close(); | ||
} | ||
}); | ||
var onFailureListener = new com.google.android.gms.tasks.OnFailureListener({ | ||
onFailure: function (exception) { return reject(exception.getMessage()); } | ||
const onFailureListener = new com.google.android.gms.tasks.OnFailureListener({ | ||
onFailure: exception => reject(exception.getMessage()) | ||
}); | ||
firebaseVisionCloudLabelDetector_1 | ||
firebaseVisionCloudLabelDetector | ||
.processImage(getImage(options)) | ||
@@ -129,6 +118,5 @@ .addOnSuccessListener(onSuccessListener) | ||
} | ||
exports.labelImageCloud = labelImageCloud; | ||
function getImage(options) { | ||
var image = options.image instanceof image_source_1.ImageSource ? options.image.android : options.image.imageSource.android; | ||
const image = options.image instanceof ImageSource ? options.image.android : options.image.imageSource.android; | ||
return com.google.firebase.ml.vision.common.FirebaseVisionImage.fromBitmap(image); | ||
} |
@@ -1,17 +0,9 @@ | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.labelImageCloud = exports.labelImageOnDevice = exports.MLKitImageLabeling = void 0; | ||
var image_source_1 = require("@nativescript/core/image-source"); | ||
var imagelabeling_common_1 = require("./imagelabeling-common"); | ||
var MLKitImageLabeling = (function (_super) { | ||
__extends(MLKitImageLabeling, _super); | ||
function MLKitImageLabeling() { | ||
return _super !== null && _super.apply(this, arguments) || this; | ||
import { ImageSource } from "@nativescript/core/image-source"; | ||
import { MLKitImageLabeling as MLKitImageLabelingBase } from "./imagelabeling-common"; | ||
export class MLKitImageLabeling extends MLKitImageLabelingBase { | ||
createDetector() { | ||
return getDetector(this.confidenceThreshold); | ||
} | ||
MLKitImageLabeling.prototype.createDetector = function () { | ||
return getDetector(this.confidenceThreshold); | ||
}; | ||
MLKitImageLabeling.prototype.createSuccessListener = function () { | ||
var _this = this; | ||
return function (labels, error) { | ||
createSuccessListener() { | ||
return (labels, error) => { | ||
if (error !== null) { | ||
@@ -21,7 +13,7 @@ console.log(error.localizedDescription); | ||
else if (labels !== null && labels.count > 0) { | ||
var result = { | ||
const result = { | ||
labels: [] | ||
}; | ||
for (var i = 0, l = labels.count; i < l; i++) { | ||
var label = labels.objectAtIndex(i); | ||
for (let i = 0, l = labels.count; i < l; i++) { | ||
const label = labels.objectAtIndex(i); | ||
result.labels.push({ | ||
@@ -32,5 +24,5 @@ text: label.text, | ||
} | ||
_this.notify({ | ||
this.notify({ | ||
eventName: MLKitImageLabeling.scanResultEvent, | ||
object: _this, | ||
object: this, | ||
value: result | ||
@@ -40,20 +32,18 @@ }); | ||
}; | ||
}; | ||
MLKitImageLabeling.prototype.rotateRecording = function () { | ||
} | ||
rotateRecording() { | ||
return true; | ||
}; | ||
return MLKitImageLabeling; | ||
}(imagelabeling_common_1.MLKitImageLabeling)); | ||
exports.MLKitImageLabeling = MLKitImageLabeling; | ||
} | ||
} | ||
function getDetector(confidenceThreshold) { | ||
var firVision = FIRVision.vision(); | ||
var fIRVisionOnDeviceImageLabelerOptions = FIRVisionOnDeviceImageLabelerOptions.new(); | ||
const firVision = FIRVision.vision(); | ||
const fIRVisionOnDeviceImageLabelerOptions = FIRVisionOnDeviceImageLabelerOptions.new(); | ||
fIRVisionOnDeviceImageLabelerOptions.confidenceThreshold = confidenceThreshold || 0.5; | ||
return firVision.onDeviceImageLabelerWithOptions(fIRVisionOnDeviceImageLabelerOptions); | ||
} | ||
function labelImageOnDevice(options) { | ||
return new Promise(function (resolve, reject) { | ||
export function labelImageOnDevice(options) { | ||
return new Promise((resolve, reject) => { | ||
try { | ||
var labelDetector = getDetector(options.confidenceThreshold); | ||
labelDetector.processImageCompletion(getImage(options), function (labels, error) { | ||
const labelDetector = getDetector(options.confidenceThreshold); | ||
labelDetector.processImageCompletion(getImage(options), (labels, error) => { | ||
if (error !== null) { | ||
@@ -63,7 +53,7 @@ reject(error.localizedDescription); | ||
else if (labels !== null) { | ||
var result = { | ||
const result = { | ||
labels: [] | ||
}; | ||
for (var i = 0, l = labels.count; i < l; i++) { | ||
var label = labels.objectAtIndex(i); | ||
for (let i = 0, l = labels.count; i < l; i++) { | ||
const label = labels.objectAtIndex(i); | ||
result.labels.push({ | ||
@@ -84,11 +74,10 @@ text: label.text, | ||
} | ||
exports.labelImageOnDevice = labelImageOnDevice; | ||
function labelImageCloud(options) { | ||
return new Promise(function (resolve, reject) { | ||
export function labelImageCloud(options) { | ||
return new Promise((resolve, reject) => { | ||
try { | ||
var fIRVisionCloudImageLabelerOptions = FIRVisionCloudImageLabelerOptions.new(); | ||
const fIRVisionCloudImageLabelerOptions = FIRVisionCloudImageLabelerOptions.new(); | ||
fIRVisionCloudImageLabelerOptions.confidenceThreshold = options.confidenceThreshold || 0.5; | ||
var firVision = FIRVision.vision(); | ||
var labeler = firVision.cloudImageLabelerWithOptions(fIRVisionCloudImageLabelerOptions); | ||
labeler.processImageCompletion(getImage(options), function (labels, error) { | ||
const firVision = FIRVision.vision(); | ||
const labeler = firVision.cloudImageLabelerWithOptions(fIRVisionCloudImageLabelerOptions); | ||
labeler.processImageCompletion(getImage(options), (labels, error) => { | ||
if (error !== null) { | ||
@@ -98,7 +87,7 @@ reject(error.localizedDescription); | ||
else if (labels !== null) { | ||
var result = { | ||
const result = { | ||
labels: [] | ||
}; | ||
for (var i = 0, l = labels.count; i < l; i++) { | ||
var label = labels.objectAtIndex(i); | ||
for (let i = 0, l = labels.count; i < l; i++) { | ||
const label = labels.objectAtIndex(i); | ||
result.labels.push({ | ||
@@ -120,6 +109,5 @@ text: label.text, | ||
} | ||
exports.labelImageCloud = labelImageCloud; | ||
function getImage(options) { | ||
var image = options.image instanceof image_source_1.ImageSource ? options.image.ios : options.image.imageSource.ios; | ||
const image = options.image instanceof ImageSource ? options.image.ios : options.image.imageSource.ios; | ||
return FIRVisionImage.alloc().initWithImage(image); | ||
} |
@@ -1,25 +0,12 @@ | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.smartreply = exports.translation = exports.naturallanguageidentification = exports.automl = exports.custommodel = exports.landmarkrecognition = exports.objectdetection = exports.imagelabeling = exports.facedetection = exports.barcodescanning = exports.textrecognition = void 0; | ||
var textrecognition = require("./textrecognition"); | ||
exports.textrecognition = textrecognition; | ||
var barcodescanning = require("./barcodescanning"); | ||
exports.barcodescanning = barcodescanning; | ||
var facedetection = require("./facedetection"); | ||
exports.facedetection = facedetection; | ||
var imagelabeling = require("./imagelabeling"); | ||
exports.imagelabeling = imagelabeling; | ||
var objectdetection = require("./objectdetection"); | ||
exports.objectdetection = objectdetection; | ||
var landmarkrecognition = require("./landmarkrecognition"); | ||
exports.landmarkrecognition = landmarkrecognition; | ||
var custommodel = require("./custommodel"); | ||
exports.custommodel = custommodel; | ||
var automl = require("./automl"); | ||
exports.automl = automl; | ||
var naturallanguageidentification = require("./naturallanguageidentification"); | ||
exports.naturallanguageidentification = naturallanguageidentification; | ||
var translation = require("./translation"); | ||
exports.translation = translation; | ||
var smartreply = require("./smartreply"); | ||
exports.smartreply = smartreply; | ||
import * as textrecognition from "./textrecognition"; | ||
import * as barcodescanning from "./barcodescanning"; | ||
import * as facedetection from "./facedetection"; | ||
import * as imagelabeling from "./imagelabeling"; | ||
import * as objectdetection from "./objectdetection"; | ||
import * as landmarkrecognition from "./landmarkrecognition"; | ||
import * as custommodel from "./custommodel"; | ||
import * as automl from "./automl"; | ||
import * as naturallanguageidentification from "./naturallanguageidentification"; | ||
import * as translation from "./translation"; | ||
import * as smartreply from "./smartreply"; | ||
export { textrecognition, barcodescanning, facedetection, imagelabeling, objectdetection, landmarkrecognition, custommodel, automl, naturallanguageidentification, translation, smartreply }; |
@@ -1,7 +0,4 @@ | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.recognizeLandmarksCloud = void 0; | ||
var image_source_1 = require("@nativescript/core/image-source"); | ||
import { ImageSource } from "@nativescript/core/image-source"; | ||
function getDetector(modelType, confidenceThreshold) { | ||
var landmarkDetectorOptions = new com.google.firebase.ml.vision.cloud.FirebaseVisionCloudDetectorOptions.Builder() | ||
const landmarkDetectorOptions = new com.google.firebase.ml.vision.cloud.FirebaseVisionCloudDetectorOptions.Builder() | ||
.setModelType(modelType === "latest" ? com.google.firebase.ml.vision.cloud.FirebaseVisionCloudDetectorOptions.LATEST_MODEL : com.google.firebase.ml.vision.cloud.FirebaseVisionCloudDetectorOptions.STABLE_MODEL) | ||
@@ -12,14 +9,14 @@ .setMaxResults(confidenceThreshold || 10) | ||
} | ||
function recognizeLandmarksCloud(options) { | ||
return new Promise(function (resolve, reject) { | ||
export function recognizeLandmarksCloud(options) { | ||
return new Promise((resolve, reject) => { | ||
try { | ||
var firebaseVisionLandmarkDetector_1 = getDetector(options.modelType, options.maxResults); | ||
var onSuccessListener = new com.google.android.gms.tasks.OnSuccessListener({ | ||
onSuccess: function (landmarks) { | ||
var result = { | ||
const firebaseVisionLandmarkDetector = getDetector(options.modelType, options.maxResults); | ||
const onSuccessListener = new com.google.android.gms.tasks.OnSuccessListener({ | ||
onSuccess: landmarks => { | ||
const result = { | ||
landmarks: [] | ||
}; | ||
if (landmarks) { | ||
for (var i = 0; i < landmarks.size(); i++) { | ||
var landmark = landmarks.get(i); | ||
for (let i = 0; i < landmarks.size(); i++) { | ||
const landmark = landmarks.get(i); | ||
result.landmarks.push({ | ||
@@ -32,9 +29,9 @@ name: landmark.getLandmark(), | ||
resolve(result); | ||
firebaseVisionLandmarkDetector_1.close(); | ||
firebaseVisionLandmarkDetector.close(); | ||
} | ||
}); | ||
var onFailureListener = new com.google.android.gms.tasks.OnFailureListener({ | ||
onFailure: function (exception) { return reject(exception.getMessage()); } | ||
const onFailureListener = new com.google.android.gms.tasks.OnFailureListener({ | ||
onFailure: exception => reject(exception.getMessage()) | ||
}); | ||
firebaseVisionLandmarkDetector_1 | ||
firebaseVisionLandmarkDetector | ||
.detectInImage(getImage(options)) | ||
@@ -50,6 +47,5 @@ .addOnSuccessListener(onSuccessListener) | ||
} | ||
exports.recognizeLandmarksCloud = recognizeLandmarksCloud; | ||
function getImage(options) { | ||
var image = options.image instanceof image_source_1.ImageSource ? options.image.android : options.image.imageSource.android; | ||
const image = options.image instanceof ImageSource ? options.image.android : options.image.imageSource.android; | ||
return com.google.firebase.ml.vision.common.FirebaseVisionImage.fromBitmap(image); | ||
} |
@@ -1,8 +0,5 @@ | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.recognizeLandmarksCloud = void 0; | ||
var image_source_1 = require("@nativescript/core/image-source"); | ||
import { ImageSource } from "@nativescript/core/image-source"; | ||
function getDetector(modelType, maxResults) { | ||
var firVision = FIRVision.vision(); | ||
var fIRVisionCloudDetectorOptions = FIRVisionCloudDetectorOptions.alloc(); | ||
const firVision = FIRVision.vision(); | ||
const fIRVisionCloudDetectorOptions = FIRVisionCloudDetectorOptions.alloc(); | ||
fIRVisionCloudDetectorOptions.modelType = modelType === "latest" ? 1 : 0; | ||
@@ -12,7 +9,7 @@ fIRVisionCloudDetectorOptions.maxResults = maxResults || 10; | ||
} | ||
function recognizeLandmarksCloud(options) { | ||
return new Promise(function (resolve, reject) { | ||
export function recognizeLandmarksCloud(options) { | ||
return new Promise((resolve, reject) => { | ||
try { | ||
var landmarkDetector = getDetector(options.modelType, options.maxResults); | ||
landmarkDetector.detectInImageCompletion(getImage(options), function (landmarks, error) { | ||
const landmarkDetector = getDetector(options.modelType, options.maxResults); | ||
landmarkDetector.detectInImageCompletion(getImage(options), (landmarks, error) => { | ||
if (error !== null) { | ||
@@ -22,7 +19,7 @@ reject(error.localizedDescription); | ||
else if (landmarks !== null) { | ||
var result = { | ||
const result = { | ||
landmarks: [] | ||
}; | ||
for (var i = 0, l = landmarks.count; i < l; i++) { | ||
var landmark = landmarks.objectAtIndex(i); | ||
for (let i = 0, l = landmarks.count; i < l; i++) { | ||
const landmark = landmarks.objectAtIndex(i); | ||
console.log(">> detected landmark: " + landmark); | ||
@@ -44,6 +41,5 @@ result.landmarks.push({ | ||
} | ||
exports.recognizeLandmarksCloud = recognizeLandmarksCloud; | ||
function getImage(options) { | ||
var image = options.image instanceof image_source_1.ImageSource ? options.image.ios : options.image.imageSource.ios; | ||
const image = options.image instanceof ImageSource ? options.image.ios : options.image.imageSource.ios; | ||
return FIRVisionImage.alloc().initWithImage(image); | ||
} |
@@ -1,61 +0,52 @@ | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.MLKitCameraView = exports.pauseProperty = exports.torchOnProperty = exports.preferFrontCameraProperty = exports.processEveryNthFrameProperty = void 0; | ||
var content_view_1 = require("@nativescript/core/ui/content-view"); | ||
var properties_1 = require("@nativescript/core/ui/core/properties"); | ||
var view_base_1 = require("@nativescript/core/ui/core/view-base"); | ||
exports.processEveryNthFrameProperty = new properties_1.Property({ | ||
import { ContentView } from "@nativescript/core/ui/content-view"; | ||
import { Property } from "@nativescript/core/ui/core/properties"; | ||
import { booleanConverter } from "@nativescript/core/ui/core/view-base"; | ||
export const processEveryNthFrameProperty = new Property({ | ||
name: "processEveryNthFrame", | ||
defaultValue: 10, | ||
}); | ||
exports.preferFrontCameraProperty = new properties_1.Property({ | ||
export const preferFrontCameraProperty = new Property({ | ||
name: "preferFrontCamera", | ||
defaultValue: false, | ||
valueConverter: view_base_1.booleanConverter | ||
valueConverter: booleanConverter | ||
}); | ||
exports.torchOnProperty = new properties_1.Property({ | ||
export const torchOnProperty = new Property({ | ||
name: "torchOn", | ||
defaultValue: false, | ||
valueConverter: view_base_1.booleanConverter | ||
valueConverter: booleanConverter | ||
}); | ||
exports.pauseProperty = new properties_1.Property({ | ||
export const pauseProperty = new Property({ | ||
name: "pause", | ||
defaultValue: false, | ||
valueConverter: view_base_1.booleanConverter | ||
valueConverter: booleanConverter | ||
}); | ||
var MLKitCameraView = (function (_super) { | ||
__extends(MLKitCameraView, _super); | ||
function MLKitCameraView() { | ||
return _super !== null && _super.apply(this, arguments) || this; | ||
export class MLKitCameraView extends ContentView { | ||
[processEveryNthFrameProperty.setNative](value) { | ||
this.processEveryNthFrame = value; | ||
} | ||
MLKitCameraView.prototype[exports.processEveryNthFrameProperty.setNative] = function (value) { | ||
this.processEveryNthFrame = value; | ||
}; | ||
MLKitCameraView.prototype[exports.preferFrontCameraProperty.setNative] = function (value) { | ||
[preferFrontCameraProperty.setNative](value) { | ||
this.preferFrontCamera = value; | ||
}; | ||
MLKitCameraView.prototype[exports.torchOnProperty.setNative] = function (value) { | ||
} | ||
[torchOnProperty.setNative](value) { | ||
this.torchOn = value; | ||
this.updateTorch(); | ||
}; | ||
MLKitCameraView.prototype[exports.pauseProperty.setNative] = function (value) { | ||
} | ||
[pauseProperty.setNative](value) { | ||
this.pause = value; | ||
this.pause ? this.pauseScanning() : this.resumeScanning(); | ||
}; | ||
MLKitCameraView.prototype.updateTorch = function () { | ||
}; | ||
MLKitCameraView.prototype.pauseScanning = function () { | ||
}; | ||
MLKitCameraView.prototype.resumeScanning = function () { | ||
}; | ||
MLKitCameraView.prototype.preProcessImage = function (image) { | ||
} | ||
updateTorch() { | ||
} | ||
pauseScanning() { | ||
} | ||
resumeScanning() { | ||
} | ||
preProcessImage(image) { | ||
return image; | ||
}; | ||
MLKitCameraView.scanResultEvent = "scanResult"; | ||
return MLKitCameraView; | ||
}(content_view_1.ContentView)); | ||
exports.MLKitCameraView = MLKitCameraView; | ||
exports.processEveryNthFrameProperty.register(MLKitCameraView); | ||
exports.preferFrontCameraProperty.register(MLKitCameraView); | ||
exports.torchOnProperty.register(MLKitCameraView); | ||
exports.pauseProperty.register(MLKitCameraView); | ||
} | ||
} | ||
MLKitCameraView.scanResultEvent = "scanResult"; | ||
processEveryNthFrameProperty.register(MLKitCameraView); | ||
preferFrontCameraProperty.register(MLKitCameraView); | ||
torchOnProperty.register(MLKitCameraView); | ||
pauseProperty.register(MLKitCameraView); |
@@ -1,28 +0,20 @@ | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.MLKitCameraView = void 0; | ||
var application = require("@nativescript/core/application"); | ||
var utils = require("@nativescript/core/utils/utils"); | ||
var mlkit_cameraview_common_1 = require("./mlkit-cameraview-common"); | ||
var ActivityCompatClass = useAndroidX() ? global.androidx.core.app.ActivityCompat : android.support.v4.app.ActivityCompat; | ||
var ContentPackageName = useAndroidX() ? global.androidx.core.content : android.support.v4.content; | ||
var CAMERA_PERMISSION_REQUEST_CODE = 502; | ||
var SizePair = (function () { | ||
function SizePair() { | ||
} | ||
return SizePair; | ||
}()); | ||
import * as application from "@nativescript/core/application"; | ||
import * as utils from "@nativescript/core/utils/utils"; | ||
import { MLKitCameraView as MLKitCameraViewBase } from "./mlkit-cameraview-common"; | ||
const ActivityCompatClass = useAndroidX() ? global.androidx.core.app.ActivityCompat : android.support.v4.app.ActivityCompat; | ||
const ContentPackageName = useAndroidX() ? global.androidx.core.content : android.support.v4.content; | ||
const CAMERA_PERMISSION_REQUEST_CODE = 502; | ||
class SizePair { | ||
} | ||
function useAndroidX() { | ||
return global.androidx && global.androidx.appcompat; | ||
} | ||
var MLKitCameraView = (function (_super) { | ||
__extends(MLKitCameraView, _super); | ||
function MLKitCameraView() { | ||
var _this = _super !== null && _super.apply(this, arguments) || this; | ||
_this.bytesToByteBuffer = new Map(); | ||
_this.pendingFrameData = null; | ||
return _this; | ||
export class MLKitCameraView extends MLKitCameraViewBase { | ||
constructor() { | ||
super(...arguments); | ||
this.bytesToByteBuffer = new Map(); | ||
this.pendingFrameData = null; | ||
} | ||
MLKitCameraView.prototype.disposeNativeView = function () { | ||
_super.prototype.disposeNativeView.call(this); | ||
disposeNativeView() { | ||
super.disposeNativeView(); | ||
this.surfaceView = null; | ||
@@ -49,6 +41,5 @@ if (this.camera != null) { | ||
this.pendingFrameData = null; | ||
}; | ||
MLKitCameraView.prototype.createNativeView = function () { | ||
var _this = this; | ||
var nativeView = _super.prototype.createNativeView.call(this); | ||
} | ||
createNativeView() { | ||
let nativeView = super.createNativeView(); | ||
if (this.hasCamera()) { | ||
@@ -59,6 +50,6 @@ if (this.wasCameraPermissionGranted()) { | ||
else { | ||
var permissionCb_1 = function (args) { | ||
const permissionCb = (args) => { | ||
if (args.requestCode === CAMERA_PERMISSION_REQUEST_CODE) { | ||
application.android.off(application.AndroidApplication.activityRequestPermissionsEvent, permissionCb_1); | ||
for (var i = 0; i < args.permissions.length; i++) { | ||
application.android.off(application.AndroidApplication.activityRequestPermissionsEvent, permissionCb); | ||
for (let i = 0; i < args.permissions.length; i++) { | ||
if (args.grantResults[i] === android.content.pm.PackageManager.PERMISSION_DENIED) { | ||
@@ -69,6 +60,6 @@ console.log("Camera permission denied"); | ||
} | ||
_this.initView(nativeView); | ||
this.initView(nativeView); | ||
} | ||
}; | ||
application.android.on(application.AndroidApplication.activityRequestPermissionsEvent, permissionCb_1); | ||
application.android.on(application.AndroidApplication.activityRequestPermissionsEvent, permissionCb); | ||
ActivityCompatClass.requestPermissions(application.android.foregroundActivity || application.android.startActivity, [android.Manifest.permission.CAMERA], CAMERA_PERMISSION_REQUEST_CODE); | ||
@@ -81,9 +72,8 @@ } | ||
return nativeView; | ||
}; | ||
MLKitCameraView.prototype.initNativeView = function () { | ||
var _this = this; | ||
_super.prototype.initNativeView.call(this); | ||
application.on("resume", function (arg) { return _this.runCamera(); }); | ||
}; | ||
MLKitCameraView.prototype.hasCamera = function () { | ||
} | ||
initNativeView() { | ||
super.initNativeView(); | ||
application.on("resume", arg => this.runCamera()); | ||
} | ||
hasCamera() { | ||
return !!utils.ad | ||
@@ -93,5 +83,5 @@ .getApplicationContext() | ||
.hasSystemFeature("android.hardware.camera"); | ||
}; | ||
MLKitCameraView.prototype.wasCameraPermissionGranted = function () { | ||
var hasPermission = android.os.Build.VERSION.SDK_INT < 23; | ||
} | ||
wasCameraPermissionGranted() { | ||
let hasPermission = android.os.Build.VERSION.SDK_INT < 23; | ||
if (!hasPermission) { | ||
@@ -102,28 +92,27 @@ hasPermission = android.content.pm.PackageManager.PERMISSION_GRANTED === | ||
return hasPermission; | ||
}; | ||
MLKitCameraView.prototype.initView = function (nativeView) { | ||
} | ||
initView(nativeView) { | ||
this.surfaceView = new android.view.SurfaceView(utils.ad.getApplicationContext()); | ||
nativeView.addView(this.surfaceView); | ||
this.runCamera(); | ||
}; | ||
MLKitCameraView.prototype.runCamera = function () { | ||
var _this = this; | ||
setTimeout(function () { | ||
if (!_this.surfaceView) { | ||
} | ||
runCamera() { | ||
setTimeout(() => { | ||
if (!this.surfaceView) { | ||
return; | ||
} | ||
try { | ||
var surfaceHolder = _this.surfaceView.getHolder(); | ||
var cameraFacingRequested = _this.preferFrontCamera ? android.hardware.Camera.CameraInfo.CAMERA_FACING_FRONT : android.hardware.Camera.CameraInfo.CAMERA_FACING_BACK; | ||
var cameraInfo = new android.hardware.Camera.CameraInfo(); | ||
var requestedCameraId_1 = android.hardware.Camera.CameraInfo.CAMERA_FACING_BACK; | ||
for (var i = 0; i < android.hardware.Camera.getNumberOfCameras(); ++i) { | ||
const surfaceHolder = this.surfaceView.getHolder(); | ||
const cameraFacingRequested = this.preferFrontCamera ? android.hardware.Camera.CameraInfo.CAMERA_FACING_FRONT : android.hardware.Camera.CameraInfo.CAMERA_FACING_BACK; | ||
const cameraInfo = new android.hardware.Camera.CameraInfo(); | ||
let requestedCameraId = android.hardware.Camera.CameraInfo.CAMERA_FACING_BACK; | ||
for (let i = 0; i < android.hardware.Camera.getNumberOfCameras(); ++i) { | ||
android.hardware.Camera.getCameraInfo(i, cameraInfo); | ||
if (cameraInfo.facing === cameraFacingRequested) { | ||
requestedCameraId_1 = i; | ||
requestedCameraId = i; | ||
break; | ||
} | ||
} | ||
_this.camera = android.hardware.Camera.open(requestedCameraId_1); | ||
var sizePair = _this.selectSizePair(_this.camera, 1400, 1200); | ||
this.camera = android.hardware.Camera.open(requestedCameraId); | ||
let sizePair = this.selectSizePair(this.camera, 1400, 1200); | ||
if (!sizePair) { | ||
@@ -133,76 +122,76 @@ console.log("Could not find suitable preview size."); | ||
} | ||
var pictureSize = sizePair.pictureSize; | ||
var previewSize_1 = sizePair.previewSize; | ||
var parameters_1 = _this.camera.getParameters(); | ||
const pictureSize = sizePair.pictureSize; | ||
const previewSize = sizePair.previewSize; | ||
const parameters = this.camera.getParameters(); | ||
if (pictureSize) { | ||
parameters_1.setPictureSize(pictureSize.width, pictureSize.height); | ||
parameters.setPictureSize(pictureSize.width, pictureSize.height); | ||
} | ||
parameters_1.setPreviewSize(previewSize_1.width, previewSize_1.height); | ||
parameters_1.setPreviewFormat(android.graphics.ImageFormat.NV21); | ||
parameters.setPreviewSize(previewSize.width, previewSize.height); | ||
parameters.setPreviewFormat(android.graphics.ImageFormat.NV21); | ||
application.off("orientationChanged"); | ||
application.on("orientationChanged", function () { | ||
_this.setRotation(_this.camera, parameters_1, requestedCameraId_1); | ||
setTimeout(function () { | ||
_this.fixStretch(previewSize_1); | ||
_this.setMetadata(previewSize_1); | ||
application.on("orientationChanged", () => { | ||
this.setRotation(this.camera, parameters, requestedCameraId); | ||
setTimeout(() => { | ||
this.fixStretch(previewSize); | ||
this.setMetadata(previewSize); | ||
}, 700); | ||
}); | ||
_this.setRotation(_this.camera, parameters_1, requestedCameraId_1); | ||
_this.fixStretch(previewSize_1); | ||
if (parameters_1.getSupportedFocusModes().contains(android.hardware.Camera.Parameters.FOCUS_MODE_CONTINUOUS_VIDEO)) { | ||
parameters_1.setFocusMode(android.hardware.Camera.Parameters.FOCUS_MODE_CONTINUOUS_VIDEO); | ||
this.setRotation(this.camera, parameters, requestedCameraId); | ||
this.fixStretch(previewSize); | ||
if (parameters.getSupportedFocusModes().contains(android.hardware.Camera.Parameters.FOCUS_MODE_CONTINUOUS_VIDEO)) { | ||
parameters.setFocusMode(android.hardware.Camera.Parameters.FOCUS_MODE_CONTINUOUS_VIDEO); | ||
} | ||
if (_this.torchOn) { | ||
if (parameters_1.getSupportedFlashModes() && parameters_1.getSupportedFlashModes().contains(android.hardware.Camera.Parameters.FLASH_MODE_TORCH)) { | ||
parameters_1.setFlashMode(android.hardware.Camera.Parameters.FLASH_MODE_TORCH); | ||
if (this.torchOn) { | ||
if (parameters.getSupportedFlashModes() && parameters.getSupportedFlashModes().contains(android.hardware.Camera.Parameters.FLASH_MODE_TORCH)) { | ||
parameters.setFlashMode(android.hardware.Camera.Parameters.FLASH_MODE_TORCH); | ||
} | ||
} | ||
_this.camera.setParameters(parameters_1); | ||
_this.detector = _this.createDetector(); | ||
var onSuccessListener_1 = _this.createSuccessListener(); | ||
var onFailureListener_1 = _this.createFailureListener(); | ||
_this.setMetadata(previewSize_1); | ||
var throttle_1 = 0; | ||
_this.camera.setPreviewCallbackWithBuffer(new android.hardware.Camera.PreviewCallback({ | ||
onPreviewFrame: function (byteArray, camera) { | ||
if (_this.pendingFrameData !== null) { | ||
camera.addCallbackBuffer(_this.pendingFrameData.array()); | ||
_this.pendingFrameData = null; | ||
this.camera.setParameters(parameters); | ||
this.detector = this.createDetector(); | ||
const onSuccessListener = this.createSuccessListener(); | ||
const onFailureListener = this.createFailureListener(); | ||
this.setMetadata(previewSize); | ||
let throttle = 0; | ||
this.camera.setPreviewCallbackWithBuffer(new android.hardware.Camera.PreviewCallback({ | ||
onPreviewFrame: (byteArray, camera) => { | ||
if (this.pendingFrameData !== null) { | ||
camera.addCallbackBuffer(this.pendingFrameData.array()); | ||
this.pendingFrameData = null; | ||
} | ||
if (!_this.bytesToByteBuffer.has(byteArray)) { | ||
if (!this.bytesToByteBuffer.has(byteArray)) { | ||
console.log("Skipping frame"); | ||
return; | ||
} | ||
byteArray = _this.preProcessImage(byteArray); | ||
_this.pendingFrameData = _this.bytesToByteBuffer.get(byteArray); | ||
if (throttle_1++ % _this.processEveryNthFrame !== 0) { | ||
byteArray = this.preProcessImage(byteArray); | ||
this.pendingFrameData = this.bytesToByteBuffer.get(byteArray); | ||
if (throttle++ % this.processEveryNthFrame !== 0) { | ||
return; | ||
} | ||
var data = _this.pendingFrameData; | ||
if (_this.detector.processImage) { | ||
_this.lastVisionImage = com.google.firebase.ml.vision.common.FirebaseVisionImage.fromByteBuffer(data, _this.metadata); | ||
_this.detector | ||
.processImage(_this.lastVisionImage) | ||
.addOnSuccessListener(onSuccessListener_1) | ||
.addOnFailureListener(onFailureListener_1); | ||
let data = this.pendingFrameData; | ||
if (this.detector.processImage) { | ||
this.lastVisionImage = com.google.firebase.ml.vision.common.FirebaseVisionImage.fromByteBuffer(data, this.metadata); | ||
this.detector | ||
.processImage(this.lastVisionImage) | ||
.addOnSuccessListener(onSuccessListener) | ||
.addOnFailureListener(onFailureListener); | ||
} | ||
else if (_this.detector.detectInImage) { | ||
_this.lastVisionImage = com.google.firebase.ml.vision.common.FirebaseVisionImage.fromByteBuffer(data, _this.metadata); | ||
_this.detector | ||
.detectInImage(_this.lastVisionImage) | ||
.addOnSuccessListener(onSuccessListener_1) | ||
.addOnFailureListener(onFailureListener_1); | ||
else if (this.detector.detectInImage) { | ||
this.lastVisionImage = com.google.firebase.ml.vision.common.FirebaseVisionImage.fromByteBuffer(data, this.metadata); | ||
this.detector | ||
.detectInImage(this.lastVisionImage) | ||
.addOnSuccessListener(onSuccessListener) | ||
.addOnFailureListener(onFailureListener); | ||
} | ||
else { | ||
_this.runDetector(data, previewSize_1.width, previewSize_1.height); | ||
this.runDetector(data, previewSize.width, previewSize.height); | ||
} | ||
} | ||
})); | ||
_this.camera.addCallbackBuffer(_this.createPreviewBuffer(previewSize_1)); | ||
_this.camera.addCallbackBuffer(_this.createPreviewBuffer(previewSize_1)); | ||
_this.camera.addCallbackBuffer(_this.createPreviewBuffer(previewSize_1)); | ||
_this.camera.addCallbackBuffer(_this.createPreviewBuffer(previewSize_1)); | ||
_this.camera.setPreviewDisplay(surfaceHolder); | ||
if (!_this.pause) { | ||
_this.camera.startPreview(); | ||
this.camera.addCallbackBuffer(this.createPreviewBuffer(previewSize)); | ||
this.camera.addCallbackBuffer(this.createPreviewBuffer(previewSize)); | ||
this.camera.addCallbackBuffer(this.createPreviewBuffer(previewSize)); | ||
this.camera.addCallbackBuffer(this.createPreviewBuffer(previewSize)); | ||
this.camera.setPreviewDisplay(surfaceHolder); | ||
if (!this.pause) { | ||
this.camera.startPreview(); | ||
} | ||
@@ -214,4 +203,4 @@ } | ||
}, 500); | ||
}; | ||
MLKitCameraView.prototype.setMetadata = function (previewSize) { | ||
} | ||
setMetadata(previewSize) { | ||
this.metadata = | ||
@@ -224,10 +213,10 @@ new com.google.firebase.ml.vision.common.FirebaseVisionImageMetadata.Builder() | ||
.build(); | ||
}; | ||
MLKitCameraView.prototype.fixStretch = function (previewSize) { | ||
var measuredWidth = this.surfaceView.getMeasuredWidth(); | ||
var measuredHeight = this.surfaceView.getMeasuredHeight(); | ||
var scale = previewSize.width / previewSize.height; | ||
var invertedScale = previewSize.height / previewSize.width; | ||
var measuredScale = measuredWidth / measuredHeight; | ||
var scaleX = 1, scaleY = 1; | ||
} | ||
fixStretch(previewSize) { | ||
let measuredWidth = this.surfaceView.getMeasuredWidth(); | ||
let measuredHeight = this.surfaceView.getMeasuredHeight(); | ||
let scale = previewSize.width / previewSize.height; | ||
let invertedScale = previewSize.height / previewSize.width; | ||
let measuredScale = measuredWidth / measuredHeight; | ||
let scaleX = 1, scaleY = 1; | ||
if (this.rotation == 1 || this.rotation == 3) { | ||
@@ -249,40 +238,40 @@ if (measuredScale <= scale) { | ||
} | ||
var correction = scaleX / scaleY > 1 ? scaleX / scaleY : 1; | ||
const correction = scaleX / scaleY > 1 ? scaleX / scaleY : 1; | ||
this.surfaceView.setScaleX(scaleX * correction); | ||
this.surfaceView.setScaleY(scaleY * correction); | ||
}; | ||
MLKitCameraView.prototype.updateTorch = function () { | ||
} | ||
updateTorch() { | ||
if (this.camera) { | ||
var parameters = this.camera.getParameters(); | ||
const parameters = this.camera.getParameters(); | ||
parameters.setFlashMode(this.torchOn ? android.hardware.Camera.Parameters.FLASH_MODE_TORCH : android.hardware.Camera.Parameters.FLASH_MODE_OFF); | ||
this.camera.setParameters(parameters); | ||
} | ||
}; | ||
MLKitCameraView.prototype.pauseScanning = function () { | ||
} | ||
pauseScanning() { | ||
if (this.camera != null) { | ||
this.camera.stopPreview(); | ||
} | ||
}; | ||
MLKitCameraView.prototype.resumeScanning = function () { | ||
} | ||
resumeScanning() { | ||
this.runCamera(); | ||
}; | ||
MLKitCameraView.prototype.runDetector = function (imageByteBuffer, width, height) { | ||
} | ||
runDetector(imageByteBuffer, width, height) { | ||
throw new Error("No custom detector implemented for detector " + this.detector + ", so 'runDetector' can't do its thing"); | ||
}; | ||
MLKitCameraView.prototype.createFailureListener = function () { | ||
} | ||
createFailureListener() { | ||
return new com.google.android.gms.tasks.OnFailureListener({ | ||
onFailure: function (exception) { return console.log(exception.getMessage()); } | ||
onFailure: exception => console.log(exception.getMessage()) | ||
}); | ||
}; | ||
MLKitCameraView.prototype.generateValidPreviewSizeList = function (camera) { | ||
var parameters = camera.getParameters(); | ||
var supportedPreviewSizes = parameters.getSupportedPreviewSizes(); | ||
var supportedPictureSizes = parameters.getSupportedPictureSizes(); | ||
var validPreviewSizes = []; | ||
for (var i = 0; i < supportedPreviewSizes.size(); i++) { | ||
var previewSize = supportedPreviewSizes.get(i); | ||
var previewAspectRatio = previewSize.width / previewSize.height; | ||
for (var j = 0; j < supportedPictureSizes.size(); j++) { | ||
var pictureSize = supportedPictureSizes.get(j); | ||
var pictureAspectRatio = pictureSize.width / pictureSize.height; | ||
} | ||
generateValidPreviewSizeList(camera) { | ||
let parameters = camera.getParameters(); | ||
let supportedPreviewSizes = parameters.getSupportedPreviewSizes(); | ||
let supportedPictureSizes = parameters.getSupportedPictureSizes(); | ||
let validPreviewSizes = []; | ||
for (let i = 0; i < supportedPreviewSizes.size(); i++) { | ||
let previewSize = supportedPreviewSizes.get(i); | ||
let previewAspectRatio = previewSize.width / previewSize.height; | ||
for (let j = 0; j < supportedPictureSizes.size(); j++) { | ||
let pictureSize = supportedPictureSizes.get(j); | ||
let pictureAspectRatio = pictureSize.width / pictureSize.height; | ||
if (Math.abs(previewAspectRatio - pictureAspectRatio) < 0.01) { | ||
@@ -296,4 +285,4 @@ validPreviewSizes.push({ previewSize: previewSize, pictureSize: pictureSize }); | ||
console.log("No preview sizes have a corresponding same-aspect-ratio picture size"); | ||
for (var i = 0; i < supportedPreviewSizes.size(); i++) { | ||
var previewSize = supportedPreviewSizes.get(i); | ||
for (let i = 0; i < supportedPreviewSizes.size(); i++) { | ||
let previewSize = supportedPreviewSizes.get(i); | ||
validPreviewSizes.push({ previewSize: previewSize, pictureSize: null }); | ||
@@ -303,11 +292,11 @@ } | ||
return validPreviewSizes; | ||
}; | ||
MLKitCameraView.prototype.selectSizePair = function (camera, desiredWidth, desiredHeight) { | ||
var validPreviewSizes = this.generateValidPreviewSizeList(camera); | ||
var selectedPair = null; | ||
var minDiff = java.lang.Integer.MAX_VALUE; | ||
for (var i = 0; i < validPreviewSizes.length; i++) { | ||
var sizePair = validPreviewSizes[i]; | ||
var size = sizePair.previewSize; | ||
var diff = Math.abs(size.width - desiredWidth) + Math.abs(size.height - desiredHeight); | ||
} | ||
selectSizePair(camera, desiredWidth, desiredHeight) { | ||
const validPreviewSizes = this.generateValidPreviewSizeList(camera); | ||
let selectedPair = null; | ||
let minDiff = java.lang.Integer.MAX_VALUE; | ||
for (let i = 0; i < validPreviewSizes.length; i++) { | ||
const sizePair = validPreviewSizes[i]; | ||
let size = sizePair.previewSize; | ||
let diff = Math.abs(size.width - desiredWidth) + Math.abs(size.height - desiredHeight); | ||
if (diff < minDiff) { | ||
@@ -319,9 +308,9 @@ selectedPair = sizePair; | ||
return selectedPair; | ||
}; | ||
MLKitCameraView.prototype.createPreviewBuffer = function (previewSize) { | ||
var bitsPerPixel = android.graphics.ImageFormat.getBitsPerPixel(android.graphics.ImageFormat.NV21); | ||
var sizeInBits = previewSize.height * previewSize.width * bitsPerPixel; | ||
var bufferSize = Math.ceil(sizeInBits / 8.0) + 1; | ||
var byteArray = Array.create('byte', bufferSize); | ||
var buffer = java.nio.ByteBuffer.wrap(byteArray); | ||
} | ||
createPreviewBuffer(previewSize) { | ||
let bitsPerPixel = android.graphics.ImageFormat.getBitsPerPixel(android.graphics.ImageFormat.NV21); | ||
let sizeInBits = previewSize.height * previewSize.width * bitsPerPixel; | ||
let bufferSize = Math.ceil(sizeInBits / 8.0) + 1; | ||
let byteArray = Array.create('byte', bufferSize); | ||
let buffer = java.nio.ByteBuffer.wrap(byteArray); | ||
if (!buffer.hasArray() || (buffer.array() !== byteArray)) { | ||
@@ -334,7 +323,7 @@ console.log("Failed to create valid buffer for camera source."); | ||
} | ||
}; | ||
MLKitCameraView.prototype.setRotation = function (camera, parameters, cameraId) { | ||
var windowManager = (application.android.foregroundActivity || application.android.startActivity).getSystemService(android.content.Context.WINDOW_SERVICE); | ||
var degrees = 0; | ||
var deviceRotation = windowManager.getDefaultDisplay().getRotation(); | ||
} | ||
setRotation(camera, parameters, cameraId) { | ||
let windowManager = (application.android.foregroundActivity || application.android.startActivity).getSystemService(android.content.Context.WINDOW_SERVICE); | ||
let degrees = 0; | ||
const deviceRotation = windowManager.getDefaultDisplay().getRotation(); | ||
switch (deviceRotation) { | ||
@@ -356,6 +345,6 @@ case android.view.Surface.ROTATION_0: | ||
} | ||
var cameraInfo = new android.hardware.Camera.CameraInfo(); | ||
const cameraInfo = new android.hardware.Camera.CameraInfo(); | ||
android.hardware.Camera.getCameraInfo(cameraId, cameraInfo); | ||
var angle; | ||
var displayAngle; | ||
let angle; | ||
let displayAngle; | ||
if (cameraInfo.facing === android.hardware.Camera.CameraInfo.CAMERA_FACING_FRONT) { | ||
@@ -372,5 +361,3 @@ angle = (cameraInfo.orientation + degrees) % 360; | ||
parameters.setRotation(angle); | ||
}; | ||
return MLKitCameraView; | ||
}(mlkit_cameraview_common_1.MLKitCameraView)); | ||
exports.MLKitCameraView = MLKitCameraView; | ||
} | ||
} |
@@ -1,14 +0,7 @@ | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.MLKitCameraView = void 0; | ||
var utils_1 = require("@nativescript/core/utils"); | ||
var application = require("@nativescript/core/application"); | ||
var mlkit_cameraview_common_1 = require("./mlkit-cameraview-common"); | ||
var MLKitCameraView = (function (_super) { | ||
__extends(MLKitCameraView, _super); | ||
function MLKitCameraView() { | ||
return _super !== null && _super.apply(this, arguments) || this; | ||
} | ||
MLKitCameraView.prototype.disposeNativeView = function () { | ||
_super.prototype.disposeNativeView.call(this); | ||
import { iOSNativeHelper as iosUtils } from "@nativescript/core/utils"; | ||
import * as application from "@nativescript/core/application"; | ||
import { MLKitCameraView as MLKitCameraViewBase } from "./mlkit-cameraview-common"; | ||
export class MLKitCameraView extends MLKitCameraViewBase { | ||
disposeNativeView() { | ||
super.disposeNativeView(); | ||
if (this.captureSession) { | ||
@@ -22,5 +15,5 @@ this.captureSession.stopRunning(); | ||
application.off("orientationChanged"); | ||
}; | ||
MLKitCameraView.prototype.createNativeView = function () { | ||
var v = _super.prototype.createNativeView.call(this); | ||
} | ||
createNativeView() { | ||
let v = super.createNativeView(); | ||
if (this.canUseCamera()) { | ||
@@ -33,4 +26,4 @@ this.initView(); | ||
return v; | ||
}; | ||
MLKitCameraView.prototype.canUseCamera = function () { | ||
} | ||
canUseCamera() { | ||
try { | ||
@@ -44,5 +37,4 @@ return !!AVCaptureDeviceDiscoverySession && | ||
} | ||
}; | ||
MLKitCameraView.prototype.initView = function () { | ||
var _this = this; | ||
} | ||
initView() { | ||
this.captureDevice = AVCaptureDeviceDiscoverySession.discoverySessionWithDeviceTypesMediaTypePosition([AVCaptureDeviceTypeBuiltInWideAngleCamera], AVMediaTypeVideo, this.preferFrontCamera ? 2 : 1).devices.firstObject; | ||
@@ -55,3 +47,3 @@ if (this.torchOn) { | ||
try { | ||
var captureDeviceInput = AVCaptureDeviceInput.deviceInputWithDeviceError(this.captureDevice); | ||
const captureDeviceInput = AVCaptureDeviceInput.deviceInputWithDeviceError(this.captureDevice); | ||
this.captureSession.addInput(captureDeviceInput); | ||
@@ -65,4 +57,4 @@ } | ||
this.previewLayer.videoGravity = AVLayerVideoGravityResizeAspectFill; | ||
if (utils_1.iOSNativeHelper.isLandscape()) { | ||
var deviceOrientation = UIDevice.currentDevice.orientation; | ||
if (iosUtils.isLandscape()) { | ||
const deviceOrientation = UIDevice.currentDevice.orientation; | ||
this.previewLayer.connection.videoOrientation = deviceOrientation === 3 ? 3 : 4; | ||
@@ -75,21 +67,21 @@ } | ||
application.on("orientationChanged", this.rotateOnOrientationChange.bind(this)); | ||
setTimeout(function () { | ||
if (_this.ios) { | ||
_this.ios.layer.addSublayer(_this.previewLayer); | ||
setTimeout(() => { | ||
if (this.ios) { | ||
this.ios.layer.addSublayer(this.previewLayer); | ||
} | ||
if (!_this.pause) { | ||
_this.captureSession.startRunning(); | ||
if (!this.pause) { | ||
this.captureSession.startRunning(); | ||
} | ||
_this.cameraView = TNSMLKitCameraView.alloc().initWithCaptureSession(_this.captureSession); | ||
_this.cameraView.processEveryXFrames = _this.processEveryNthFrame; | ||
if (_this.rotateRecording()) { | ||
_this.cameraView.imageOrientation = 3; | ||
this.cameraView = TNSMLKitCameraView.alloc().initWithCaptureSession(this.captureSession); | ||
this.cameraView.processEveryXFrames = this.processEveryNthFrame; | ||
if (this.rotateRecording()) { | ||
this.cameraView.imageOrientation = 3; | ||
} | ||
_this.cameraView.delegate = TNSMLKitCameraViewDelegateImpl.createWithOwnerResultCallbackAndOptions(new WeakRef(_this), function (data) { }, _this.preProcessImage, {}); | ||
this.cameraView.delegate = TNSMLKitCameraViewDelegateImpl.createWithOwnerResultCallbackAndOptions(new WeakRef(this), data => { }, this.preProcessImage, {}); | ||
}, 0); | ||
}; | ||
MLKitCameraView.prototype.rotateOnOrientationChange = function (args) { | ||
} | ||
rotateOnOrientationChange(args) { | ||
if (this.previewLayer) { | ||
if (args.newValue === "landscape") { | ||
var deviceOrientation = UIDevice.currentDevice.orientation; | ||
const deviceOrientation = UIDevice.currentDevice.orientation; | ||
this.previewLayer.connection.videoOrientation = deviceOrientation === 3 ? 3 : 4; | ||
@@ -101,10 +93,10 @@ } | ||
} | ||
}; | ||
MLKitCameraView.prototype.onLayout = function (left, top, right, bottom) { | ||
_super.prototype.onLayout.call(this, left, top, right, bottom); | ||
} | ||
onLayout(left, top, right, bottom) { | ||
super.onLayout(left, top, right, bottom); | ||
if (this.previewLayer && this.ios && this.canUseCamera()) { | ||
this.previewLayer.frame = this.ios.layer.bounds; | ||
} | ||
}; | ||
MLKitCameraView.prototype.getVisionOrientation = function (imageOrientation) { | ||
} | ||
getVisionOrientation(imageOrientation) { | ||
if (imageOrientation === 0) { | ||
@@ -137,5 +129,5 @@ return 1; | ||
} | ||
}; | ||
MLKitCameraView.prototype.updateTorch = function () { | ||
var device = this.captureDevice; | ||
} | ||
updateTorch() { | ||
const device = this.captureDevice; | ||
if (device && device.hasTorch && device.lockForConfiguration()) { | ||
@@ -152,31 +144,27 @@ if (this.torchOn) { | ||
} | ||
}; | ||
MLKitCameraView.prototype.pauseScanning = function () { | ||
} | ||
pauseScanning() { | ||
if (this.captureSession && this.captureSession.running) { | ||
this.captureSession.stopRunning(); | ||
} | ||
}; | ||
MLKitCameraView.prototype.resumeScanning = function () { | ||
} | ||
resumeScanning() { | ||
if (this.captureSession && !this.captureSession.running) { | ||
this.captureSession.startRunning(); | ||
} | ||
}; | ||
MLKitCameraView.prototype.runDetector = function (image, onComplete) { | ||
} | ||
runDetector(image, onComplete) { | ||
throw new Error("No custom detector implemented, so 'runDetector' can't do its thing"); | ||
}; | ||
return MLKitCameraView; | ||
}(mlkit_cameraview_common_1.MLKitCameraView)); | ||
exports.MLKitCameraView = MLKitCameraView; | ||
var TNSMLKitCameraViewDelegateImpl = (function (_super) { | ||
__extends(TNSMLKitCameraViewDelegateImpl, _super); | ||
function TNSMLKitCameraViewDelegateImpl() { | ||
var _this = _super !== null && _super.apply(this, arguments) || this; | ||
_this.detectorBusy = false; | ||
return _this; | ||
} | ||
TNSMLKitCameraViewDelegateImpl.createWithOwnerResultCallbackAndOptions = function (owner, callback, preProcessImageCallback, options) { | ||
} | ||
class TNSMLKitCameraViewDelegateImpl extends NSObject { | ||
constructor() { | ||
super(...arguments); | ||
this.detectorBusy = false; | ||
} | ||
static createWithOwnerResultCallbackAndOptions(owner, callback, preProcessImageCallback, options) { | ||
if (TNSMLKitCameraViewDelegateImpl.ObjCProtocols.length === 0 && typeof (TNSMLKitCameraViewDelegate) !== "undefined") { | ||
TNSMLKitCameraViewDelegateImpl.ObjCProtocols.push(TNSMLKitCameraViewDelegate); | ||
} | ||
var delegate = TNSMLKitCameraViewDelegateImpl.new(); | ||
let delegate = TNSMLKitCameraViewDelegateImpl.new(); | ||
delegate.owner = owner; | ||
@@ -189,5 +177,4 @@ delegate.options = options; | ||
return delegate; | ||
}; | ||
TNSMLKitCameraViewDelegateImpl.prototype.cameraDidOutputImage = function (image) { | ||
var _this = this; | ||
} | ||
cameraDidOutputImage(image) { | ||
if (!image || this.detectorBusy) { | ||
@@ -197,9 +184,9 @@ return; | ||
this.detectorBusy = true; | ||
var onComplete = function () { | ||
_this.detectorBusy = false; | ||
const onComplete = () => { | ||
this.detectorBusy = false; | ||
}; | ||
this.owner.get().lastVisionImage = image; | ||
if (this.detector.detectInImageCompletion) { | ||
this.detector.detectInImageCompletion(this.uiImageToFIRVisionImage(image), function (result, error) { | ||
_this.onSuccessListener(result, error); | ||
this.detector.detectInImageCompletion(this.uiImageToFIRVisionImage(image), (result, error) => { | ||
this.onSuccessListener(result, error); | ||
onComplete(); | ||
@@ -209,4 +196,4 @@ }); | ||
else if (this.detector.processImageCompletion) { | ||
this.detector.processImageCompletion(this.uiImageToFIRVisionImage(image), function (result, error) { | ||
_this.onSuccessListener(result, error); | ||
this.detector.processImageCompletion(this.uiImageToFIRVisionImage(image), (result, error) => { | ||
this.onSuccessListener(result, error); | ||
onComplete(); | ||
@@ -218,13 +205,12 @@ }); | ||
} | ||
}; | ||
TNSMLKitCameraViewDelegateImpl.prototype.uiImageToFIRVisionImage = function (image) { | ||
} | ||
uiImageToFIRVisionImage(image) { | ||
image = this.preProcessImageCallback(image); | ||
var fIRVisionImage = FIRVisionImage.alloc().initWithImage(image); | ||
var fIRVisionImageMetadata = FIRVisionImageMetadata.new(); | ||
const fIRVisionImage = FIRVisionImage.alloc().initWithImage(image); | ||
const fIRVisionImageMetadata = FIRVisionImageMetadata.new(); | ||
fIRVisionImageMetadata.orientation = this.owner.get().getVisionOrientation(image.imageOrientation); | ||
fIRVisionImage.metadata = fIRVisionImageMetadata; | ||
return fIRVisionImage; | ||
}; | ||
TNSMLKitCameraViewDelegateImpl.ObjCProtocols = []; | ||
return TNSMLKitCameraViewDelegateImpl; | ||
}(NSObject)); | ||
} | ||
} | ||
TNSMLKitCameraViewDelegateImpl.ObjCProtocols = []; |
@@ -1,6 +0,3 @@ | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.indentifyPossibleLanguages = exports.identifyNaturalLanguage = void 0; | ||
function identifyNaturalLanguage(options) { | ||
return new Promise(function (resolve, reject) { | ||
export function identifyNaturalLanguage(options) { | ||
return new Promise((resolve, reject) => { | ||
try { | ||
@@ -11,3 +8,3 @@ if (!options.text) { | ||
} | ||
var languageIdentifier = com.google.firebase.ml.naturallanguage.FirebaseNaturalLanguage.getInstance().getLanguageIdentification(new com.google.firebase.ml.naturallanguage.languageid.FirebaseLanguageIdentificationOptions.Builder() | ||
const languageIdentifier = com.google.firebase.ml.naturallanguage.FirebaseNaturalLanguage.getInstance().getLanguageIdentification(new com.google.firebase.ml.naturallanguage.languageid.FirebaseLanguageIdentificationOptions.Builder() | ||
.setConfidenceThreshold(options.confidenceThreshold || 0.5) | ||
@@ -17,5 +14,5 @@ .build()); | ||
.addOnSuccessListener(new com.google.android.gms.tasks.OnSuccessListener({ | ||
onSuccess: function (languageCode) { | ||
onSuccess: languageCode => { | ||
if (languageCode && languageCode !== "und") { | ||
resolve({ languageCode: languageCode }); | ||
resolve({ languageCode }); | ||
} | ||
@@ -28,3 +25,3 @@ else { | ||
.addOnFailureListener(new com.google.android.gms.tasks.OnFailureListener({ | ||
onFailure: function (exception) { return reject(exception.getMessage()); } | ||
onFailure: exception => reject(exception.getMessage()) | ||
})); | ||
@@ -38,7 +35,6 @@ } | ||
} | ||
exports.identifyNaturalLanguage = identifyNaturalLanguage; | ||
function indentifyPossibleLanguages(options) { | ||
return new Promise(function (resolve, reject) { | ||
export function indentifyPossibleLanguages(options) { | ||
return new Promise((resolve, reject) => { | ||
try { | ||
var languageIdentifier = com.google.firebase.ml.naturallanguage.FirebaseNaturalLanguage.getInstance().getLanguageIdentification(new com.google.firebase.ml.naturallanguage.languageid.FirebaseLanguageIdentificationOptions.Builder() | ||
const languageIdentifier = com.google.firebase.ml.naturallanguage.FirebaseNaturalLanguage.getInstance().getLanguageIdentification(new com.google.firebase.ml.naturallanguage.languageid.FirebaseLanguageIdentificationOptions.Builder() | ||
.setConfidenceThreshold(options.confidenceThreshold || 0.01) | ||
@@ -48,7 +44,7 @@ .build()); | ||
.addOnSuccessListener(new com.google.android.gms.tasks.OnSuccessListener({ | ||
onSuccess: function (languages) { | ||
var langs = []; | ||
onSuccess: languages => { | ||
const langs = []; | ||
if (languages && languages.get(0).getLanguageCode() !== "und") { | ||
for (var i = 0; i < languages.size(); i++) { | ||
var l = languages.get(i); | ||
for (let i = 0; i < languages.size(); i++) { | ||
const l = languages.get(i); | ||
langs.push({ | ||
@@ -64,3 +60,3 @@ languageCode: l.getLanguageCode(), | ||
.addOnFailureListener(new com.google.android.gms.tasks.OnFailureListener({ | ||
onFailure: function (exception) { return reject(exception.getMessage()); } | ||
onFailure: exception => reject(exception.getMessage()) | ||
})); | ||
@@ -74,2 +70,1 @@ } | ||
} | ||
exports.indentifyPossibleLanguages = indentifyPossibleLanguages; |
@@ -1,6 +0,3 @@ | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.indentifyPossibleLanguages = exports.identifyNaturalLanguage = void 0; | ||
function identifyNaturalLanguage(options) { | ||
return new Promise(function (resolve, reject) { | ||
export function identifyNaturalLanguage(options) { | ||
return new Promise((resolve, reject) => { | ||
try { | ||
@@ -11,5 +8,5 @@ if (!options.text) { | ||
} | ||
var naturalLanguage = FIRNaturalLanguage.naturalLanguage(); | ||
var languageId = naturalLanguage.languageIdentificationWithOptions(FIRLanguageIdentificationOptions.alloc().initWithConfidenceThreshold(options.confidenceThreshold || 0.5)); | ||
languageId.identifyLanguageForTextCompletion(options.text, function (languageCode, error) { | ||
const naturalLanguage = FIRNaturalLanguage.naturalLanguage(); | ||
const languageId = naturalLanguage.languageIdentificationWithOptions(FIRLanguageIdentificationOptions.alloc().initWithConfidenceThreshold(options.confidenceThreshold || 0.5)); | ||
languageId.identifyLanguageForTextCompletion(options.text, (languageCode, error) => { | ||
if (error !== null) { | ||
@@ -21,3 +18,3 @@ console.log("Failed with error: " + error.localizedDescription); | ||
console.log("Identified language: " + languageCode); | ||
resolve({ languageCode: languageCode }); | ||
resolve({ languageCode }); | ||
} | ||
@@ -36,9 +33,8 @@ else { | ||
} | ||
exports.identifyNaturalLanguage = identifyNaturalLanguage; | ||
function indentifyPossibleLanguages(options) { | ||
return new Promise(function (resolve, reject) { | ||
export function indentifyPossibleLanguages(options) { | ||
return new Promise((resolve, reject) => { | ||
try { | ||
var naturalLanguage = FIRNaturalLanguage.naturalLanguage(); | ||
var languageId = naturalLanguage.languageIdentificationWithOptions(FIRLanguageIdentificationOptions.alloc().initWithConfidenceThreshold(options.confidenceThreshold || 0.01)); | ||
languageId.identifyPossibleLanguagesForTextCompletion(options.text, function (languages, error) { | ||
const naturalLanguage = FIRNaturalLanguage.naturalLanguage(); | ||
const languageId = naturalLanguage.languageIdentificationWithOptions(FIRLanguageIdentificationOptions.alloc().initWithConfidenceThreshold(options.confidenceThreshold || 0.01)); | ||
languageId.identifyPossibleLanguagesForTextCompletion(options.text, (languages, error) => { | ||
if (error !== null) { | ||
@@ -53,5 +49,5 @@ console.log("Failed with error: " + error.localizedDescription); | ||
else { | ||
var langs = []; | ||
for (var i = 0; i < languages.count; i++) { | ||
var l = languages.objectAtIndex(i); | ||
const langs = []; | ||
for (let i = 0; i < languages.count; i++) { | ||
const l = languages.objectAtIndex(i); | ||
langs.push({ | ||
@@ -72,2 +68,1 @@ languageCode: l.languageCode, | ||
} | ||
exports.indentifyPossibleLanguages = indentifyPossibleLanguages; |
@@ -1,31 +0,23 @@ | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.detectObjects = exports.MLKitObjectDetection = void 0; | ||
var image_source_1 = require("@nativescript/core/image-source"); | ||
var objectdetection_common_1 = require("./objectdetection-common"); | ||
var MLKitObjectDetection = (function (_super) { | ||
__extends(MLKitObjectDetection, _super); | ||
function MLKitObjectDetection() { | ||
return _super !== null && _super.apply(this, arguments) || this; | ||
import { ImageSource } from "@nativescript/core/image-source"; | ||
import { MLKitObjectDetection as MLKitObjectDetectionBase, ObjectDetectionCategory } from "./objectdetection-common"; | ||
export class MLKitObjectDetection extends MLKitObjectDetectionBase { | ||
createDetector() { | ||
return getDetector(this.classify, this.multiple); | ||
} | ||
MLKitObjectDetection.prototype.createDetector = function () { | ||
return getDetector(this.classify, this.multiple); | ||
}; | ||
MLKitObjectDetection.prototype.createSuccessListener = function () { | ||
var _this = this; | ||
createSuccessListener() { | ||
return new com.google.android.gms.tasks.OnSuccessListener({ | ||
onSuccess: function (objects) { | ||
onSuccess: objects => { | ||
console.log(">> onSuccess @ " + new Date().getTime() + ", objects: " + objects.size()); | ||
if (objects.size() === 0) | ||
return; | ||
var result = { | ||
const result = { | ||
objects: [] | ||
}; | ||
var image = _this.lastVisionImage && _this.lastVisionImage.getBitmap ? _this.lastVisionImage.getBitmap() : null; | ||
for (var i = 0; i < objects.size(); i++) { | ||
const image = this.lastVisionImage && this.lastVisionImage.getBitmap ? this.lastVisionImage.getBitmap() : null; | ||
for (let i = 0; i < objects.size(); i++) { | ||
result.objects.push(getMLKitObjectDetectionResultItem(objects.get(i), image)); | ||
} | ||
_this.notify({ | ||
this.notify({ | ||
eventName: MLKitObjectDetection.scanResultEvent, | ||
object: _this, | ||
object: this, | ||
value: result | ||
@@ -35,8 +27,6 @@ }); | ||
}); | ||
}; | ||
return MLKitObjectDetection; | ||
}(objectdetection_common_1.MLKitObjectDetection)); | ||
exports.MLKitObjectDetection = MLKitObjectDetection; | ||
} | ||
} | ||
function getDetector(classify, multiple) { | ||
var builder = new com.google.firebase.ml.vision.objects.FirebaseVisionObjectDetectorOptions.Builder() | ||
const builder = new com.google.firebase.ml.vision.objects.FirebaseVisionObjectDetectorOptions.Builder() | ||
.setDetectorMode(com.google.firebase.ml.vision.objects.FirebaseVisionObjectDetectorOptions.SINGLE_IMAGE_MODE); | ||
@@ -51,26 +41,26 @@ if (classify) { | ||
} | ||
function detectObjects(options) { | ||
return new Promise(function (resolve, reject) { | ||
export function detectObjects(options) { | ||
return new Promise((resolve, reject) => { | ||
try { | ||
var firebaseObjectDetector_1 = getDetector(options.classify, options.multiple); | ||
var image_1 = options.image instanceof image_source_1.ImageSource ? options.image.android : options.image.imageSource.android; | ||
var firImage = com.google.firebase.ml.vision.common.FirebaseVisionImage.fromBitmap(image_1); | ||
var onSuccessListener = new com.google.android.gms.tasks.OnSuccessListener({ | ||
onSuccess: function (objects) { | ||
var result = { | ||
const firebaseObjectDetector = getDetector(options.classify, options.multiple); | ||
const image = options.image instanceof ImageSource ? options.image.android : options.image.imageSource.android; | ||
const firImage = com.google.firebase.ml.vision.common.FirebaseVisionImage.fromBitmap(image); | ||
const onSuccessListener = new com.google.android.gms.tasks.OnSuccessListener({ | ||
onSuccess: objects => { | ||
const result = { | ||
objects: [] | ||
}; | ||
if (objects) { | ||
for (var i = 0; i < objects.size(); i++) { | ||
result.objects.push(getMLKitObjectDetectionResultItem(objects.get(i), image_1)); | ||
for (let i = 0; i < objects.size(); i++) { | ||
result.objects.push(getMLKitObjectDetectionResultItem(objects.get(i), image)); | ||
} | ||
} | ||
resolve(result); | ||
firebaseObjectDetector_1.close(); | ||
firebaseObjectDetector.close(); | ||
} | ||
}); | ||
var onFailureListener = new com.google.android.gms.tasks.OnFailureListener({ | ||
onFailure: function (exception) { return reject(exception.getMessage()); } | ||
const onFailureListener = new com.google.android.gms.tasks.OnFailureListener({ | ||
onFailure: exception => reject(exception.getMessage()) | ||
}); | ||
firebaseObjectDetector_1 | ||
firebaseObjectDetector | ||
.processImage(firImage) | ||
@@ -86,3 +76,2 @@ .addOnSuccessListener(onSuccessListener) | ||
} | ||
exports.detectObjects = detectObjects; | ||
function getMLKitObjectDetectionResultItem(obj, image) { | ||
@@ -92,3 +81,3 @@ return { | ||
confidence: obj.getClassificationConfidence() ? obj.getClassificationConfidence().doubleValue() : undefined, | ||
category: objectdetection_common_1.ObjectDetectionCategory[obj.getClassificationCategory()], | ||
category: ObjectDetectionCategory[obj.getClassificationCategory()], | ||
bounds: boundingBoxToBounds(obj.getBoundingBox()), | ||
@@ -102,3 +91,3 @@ image: !image ? null : { | ||
function getImage(options) { | ||
var image = options.image instanceof image_source_1.ImageSource ? options.image.android : options.image.imageSource.android; | ||
const image = options.image instanceof ImageSource ? options.image.android : options.image.imageSource.android; | ||
return com.google.firebase.ml.vision.common.FirebaseVisionImage.fromBitmap(image); | ||
@@ -105,0 +94,0 @@ } |
@@ -1,18 +0,10 @@ | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.detectObjects = exports.MLKitObjectDetection = void 0; | ||
var image_source_1 = require("@nativescript/core/image-source"); | ||
var utils_1 = require("@nativescript/core/utils/utils"); | ||
var objectdetection_common_1 = require("./objectdetection-common"); | ||
var MLKitObjectDetection = (function (_super) { | ||
__extends(MLKitObjectDetection, _super); | ||
function MLKitObjectDetection() { | ||
return _super !== null && _super.apply(this, arguments) || this; | ||
import { ImageSource } from "@nativescript/core/image-source"; | ||
import { iOSNativeHelper as iosUtils } from "@nativescript/core/utils/utils"; | ||
import { MLKitObjectDetection as MLKitObjectDetectionBase, ObjectDetectionCategory } from "./objectdetection-common"; | ||
export class MLKitObjectDetection extends MLKitObjectDetectionBase { | ||
createDetector() { | ||
return getDetector(true, this.classify, this.multiple); | ||
} | ||
MLKitObjectDetection.prototype.createDetector = function () { | ||
return getDetector(true, this.classify, this.multiple); | ||
}; | ||
MLKitObjectDetection.prototype.createSuccessListener = function () { | ||
var _this = this; | ||
return function (objects, error) { | ||
createSuccessListener() { | ||
return (objects, error) => { | ||
if (error !== null) { | ||
@@ -22,12 +14,12 @@ console.log(error.localizedDescription); | ||
else if (objects !== null && objects.count > 0) { | ||
var result = { | ||
const result = { | ||
objects: [] | ||
}; | ||
for (var i = 0, l = objects.count; i < l; i++) { | ||
var obj = objects.objectAtIndex(i); | ||
result.objects.push(getMLKitObjectDetectionResultItem(obj, _this.lastVisionImage)); | ||
for (let i = 0, l = objects.count; i < l; i++) { | ||
const obj = objects.objectAtIndex(i); | ||
result.objects.push(getMLKitObjectDetectionResultItem(obj, this.lastVisionImage)); | ||
} | ||
_this.notify({ | ||
this.notify({ | ||
eventName: MLKitObjectDetection.scanResultEvent, | ||
object: _this, | ||
object: this, | ||
value: result | ||
@@ -37,12 +29,10 @@ }); | ||
}; | ||
}; | ||
MLKitObjectDetection.prototype.rotateRecording = function () { | ||
} | ||
rotateRecording() { | ||
return true; | ||
}; | ||
return MLKitObjectDetection; | ||
}(objectdetection_common_1.MLKitObjectDetection)); | ||
exports.MLKitObjectDetection = MLKitObjectDetection; | ||
} | ||
} | ||
function getDetector(stream, classify, multiple) { | ||
var firVision = FIRVision.vision(); | ||
var fIRVisionObjectDetectorOptions = FIRVisionObjectDetectorOptions.new(); | ||
const firVision = FIRVision.vision(); | ||
const fIRVisionObjectDetectorOptions = FIRVisionObjectDetectorOptions.new(); | ||
fIRVisionObjectDetectorOptions.detectorMode = stream ? 1 : 0; | ||
@@ -53,7 +43,7 @@ fIRVisionObjectDetectorOptions.shouldEnableClassification = classify || false; | ||
} | ||
function detectObjects(options) { | ||
return new Promise(function (resolve, reject) { | ||
export function detectObjects(options) { | ||
return new Promise((resolve, reject) => { | ||
try { | ||
var detector = getDetector(false, options.classify, options.multiple); | ||
detector.processImageCompletion(getImage(options), function (objects, error) { | ||
const detector = getDetector(false, options.classify, options.multiple); | ||
detector.processImageCompletion(getImage(options), (objects, error) => { | ||
if (error !== null) { | ||
@@ -63,8 +53,8 @@ reject(error.localizedDescription); | ||
else if (objects !== null) { | ||
var result = { | ||
const result = { | ||
objects: [] | ||
}; | ||
var image = options.image instanceof image_source_1.ImageSource ? options.image.ios : options.image.imageSource.ios; | ||
for (var i = 0, l = objects.count; i < l; i++) { | ||
var obj = objects.objectAtIndex(i); | ||
const image = options.image instanceof ImageSource ? options.image.ios : options.image.imageSource.ios; | ||
for (let i = 0, l = objects.count; i < l; i++) { | ||
const obj = objects.objectAtIndex(i); | ||
result.objects.push(getMLKitObjectDetectionResultItem(obj, image)); | ||
@@ -82,16 +72,15 @@ } | ||
} | ||
exports.detectObjects = detectObjects; | ||
function getMLKitObjectDetectionResultItem(obj, image) { | ||
console.log(">> getMLKitObjectDetectionResultItem, image: " + image); | ||
var imageWidth; | ||
var imageHeight; | ||
var _a = obj.frame.origin, x = _a.x, y = _a.y; | ||
var _b = obj.frame.size, width = _b.width, height = _b.height; | ||
let imageWidth; | ||
let imageHeight; | ||
let { x, y } = obj.frame.origin; | ||
let { width, height } = obj.frame.size; | ||
if (image) { | ||
imageWidth = image.size.width; | ||
imageHeight = image.size.height; | ||
var origX = x; | ||
var origWidth = width; | ||
var origImageWidth = imageWidth; | ||
if (utils_1.iOSNativeHelper.isLandscape()) { | ||
const origX = x; | ||
const origWidth = width; | ||
const origImageWidth = imageWidth; | ||
if (iosUtils.isLandscape()) { | ||
if (UIDevice.currentDevice.orientation === 4) { | ||
@@ -113,3 +102,3 @@ x = image.size.width - (width + x); | ||
id: obj.trackingID, | ||
category: objectdetection_common_1.ObjectDetectionCategory[obj.classificationCategory], | ||
category: ObjectDetectionCategory[obj.classificationCategory], | ||
confidence: obj.confidence, | ||
@@ -119,8 +108,8 @@ ios: obj, | ||
origin: { | ||
x: x, | ||
y: y | ||
x, | ||
y | ||
}, | ||
size: { | ||
width: width, | ||
height: height | ||
width, | ||
height | ||
} | ||
@@ -135,4 +124,4 @@ }, | ||
function getImage(options) { | ||
var image = options.image instanceof image_source_1.ImageSource ? options.image.ios : options.image.imageSource.ios; | ||
const image = options.image instanceof ImageSource ? options.image.ios : options.image.imageSource.ios; | ||
return FIRVisionImage.alloc().initWithImage(image); | ||
} |
@@ -1,8 +0,5 @@ | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.MLKitObjectDetection = exports.multipleProperty = exports.classifyProperty = exports.ObjectDetectionCategory = void 0; | ||
var properties_1 = require("@nativescript/core/ui/core/properties"); | ||
var view_base_1 = require("@nativescript/core/ui/core/view-base"); | ||
var mlkit_cameraview_1 = require("../mlkit-cameraview"); | ||
var ObjectDetectionCategory; | ||
import { Property } from "@nativescript/core/ui/core/properties"; | ||
import { booleanConverter } from "@nativescript/core/ui/core/view-base"; | ||
import { MLKitCameraView } from "../mlkit-cameraview"; | ||
export var ObjectDetectionCategory; | ||
(function (ObjectDetectionCategory) { | ||
@@ -15,29 +12,23 @@ ObjectDetectionCategory[ObjectDetectionCategory["Unknown"] = 0] = "Unknown"; | ||
ObjectDetectionCategory[ObjectDetectionCategory["Plants"] = 5] = "Plants"; | ||
})(ObjectDetectionCategory = exports.ObjectDetectionCategory || (exports.ObjectDetectionCategory = {})); | ||
exports.classifyProperty = new properties_1.Property({ | ||
})(ObjectDetectionCategory || (ObjectDetectionCategory = {})); | ||
export const classifyProperty = new Property({ | ||
name: "classify", | ||
defaultValue: false, | ||
valueConverter: view_base_1.booleanConverter | ||
valueConverter: booleanConverter | ||
}); | ||
exports.multipleProperty = new properties_1.Property({ | ||
export const multipleProperty = new Property({ | ||
name: "multiple", | ||
defaultValue: false, | ||
valueConverter: view_base_1.booleanConverter | ||
valueConverter: booleanConverter | ||
}); | ||
var MLKitObjectDetection = (function (_super) { | ||
__extends(MLKitObjectDetection, _super); | ||
function MLKitObjectDetection() { | ||
return _super !== null && _super.apply(this, arguments) || this; | ||
export class MLKitObjectDetection extends MLKitCameraView { | ||
[classifyProperty.setNative](value) { | ||
this.classify = value; | ||
} | ||
MLKitObjectDetection.prototype[exports.classifyProperty.setNative] = function (value) { | ||
this.classify = value; | ||
}; | ||
MLKitObjectDetection.prototype[exports.multipleProperty.setNative] = function (value) { | ||
[multipleProperty.setNative](value) { | ||
this.multiple = value; | ||
}; | ||
MLKitObjectDetection.scanResultEvent = "scanResult"; | ||
return MLKitObjectDetection; | ||
}(mlkit_cameraview_1.MLKitCameraView)); | ||
exports.MLKitObjectDetection = MLKitObjectDetection; | ||
exports.classifyProperty.register(MLKitObjectDetection); | ||
exports.multipleProperty.register(MLKitObjectDetection); | ||
} | ||
} | ||
MLKitObjectDetection.scanResultEvent = "scanResult"; | ||
classifyProperty.register(MLKitObjectDetection); | ||
multipleProperty.register(MLKitObjectDetection); |
@@ -1,20 +0,17 @@ | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.suggestReplies = void 0; | ||
function suggestReplies(options) { | ||
return new Promise(function (resolve, reject) { | ||
export function suggestReplies(options) { | ||
return new Promise((resolve, reject) => { | ||
try { | ||
var conversation_1 = new java.util.ArrayList(); | ||
options.conversation.forEach(function (m) { | ||
const conversation = new java.util.ArrayList(); | ||
options.conversation.forEach(m => { | ||
if (m.localUser) { | ||
conversation_1.add(com.google.firebase.ml.naturallanguage.smartreply.FirebaseTextMessage.createForLocalUser(m.text, m.timestamp)); | ||
conversation.add(com.google.firebase.ml.naturallanguage.smartreply.FirebaseTextMessage.createForLocalUser(m.text, m.timestamp)); | ||
} | ||
else { | ||
conversation_1.add(com.google.firebase.ml.naturallanguage.smartreply.FirebaseTextMessage.createForRemoteUser(m.text, m.timestamp, m.userId)); | ||
conversation.add(com.google.firebase.ml.naturallanguage.smartreply.FirebaseTextMessage.createForRemoteUser(m.text, m.timestamp, m.userId)); | ||
} | ||
}); | ||
var smartReply = com.google.firebase.ml.naturallanguage.FirebaseNaturalLanguage.getInstance().getSmartReply(); | ||
smartReply.suggestReplies(conversation_1) | ||
const smartReply = com.google.firebase.ml.naturallanguage.FirebaseNaturalLanguage.getInstance().getSmartReply(); | ||
smartReply.suggestReplies(conversation) | ||
.addOnSuccessListener(new com.google.android.gms.tasks.OnSuccessListener({ | ||
onSuccess: function (result) { | ||
onSuccess: (result) => { | ||
if (result.getStatus() == com.google.firebase.ml.naturallanguage.smartreply.SmartReplySuggestionResult.STATUS_NOT_SUPPORTED_LANGUAGE) { | ||
@@ -27,5 +24,5 @@ reject("Unsupported language"); | ||
else if (result.getStatus() == com.google.firebase.ml.naturallanguage.smartreply.SmartReplySuggestionResult.STATUS_SUCCESS) { | ||
var suggestions = []; | ||
for (var i = 0; i < result.getSuggestions().size(); i++) { | ||
var s = result.getSuggestions().get(i); | ||
const suggestions = []; | ||
for (let i = 0; i < result.getSuggestions().size(); i++) { | ||
const s = result.getSuggestions().get(i); | ||
suggestions.push(s.getText()); | ||
@@ -41,3 +38,3 @@ } | ||
.addOnFailureListener(new com.google.android.gms.tasks.OnFailureListener({ | ||
onFailure: function (exception) { return reject(exception.getMessage()); } | ||
onFailure: exception => reject(exception.getMessage()) | ||
})); | ||
@@ -51,2 +48,1 @@ } | ||
} | ||
exports.suggestReplies = suggestReplies; |
@@ -1,12 +0,9 @@ | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.suggestReplies = void 0; | ||
function suggestReplies(options) { | ||
return new Promise(function (resolve, reject) { | ||
export function suggestReplies(options) { | ||
return new Promise((resolve, reject) => { | ||
try { | ||
var naturalLanguage = FIRNaturalLanguage.naturalLanguage(); | ||
var smartReply = naturalLanguage.smartReply(); | ||
var conversation_1 = NSMutableArray.new(); | ||
options.conversation.forEach(function (m) { return conversation_1.addObject(FIRTextMessage.alloc().initWithTextTimestampUserIDIsLocalUser(m.text, m.timestamp, m.userId, m.localUser)); }); | ||
smartReply.suggestRepliesForMessagesCompletion(conversation_1, function (result, error) { | ||
const naturalLanguage = FIRNaturalLanguage.naturalLanguage(); | ||
const smartReply = naturalLanguage.smartReply(); | ||
const conversation = NSMutableArray.new(); | ||
options.conversation.forEach(m => conversation.addObject(FIRTextMessage.alloc().initWithTextTimestampUserIDIsLocalUser(m.text, m.timestamp, m.userId, m.localUser))); | ||
smartReply.suggestRepliesForMessagesCompletion(conversation, (result, error) => { | ||
if (error) { | ||
@@ -25,5 +22,5 @@ reject(error.localizedDescription); | ||
else if (result.status === 0) { | ||
var suggestions = []; | ||
for (var i = 0; i < result.suggestions.count; i++) { | ||
var s = result.suggestions.objectAtIndex(i); | ||
const suggestions = []; | ||
for (let i = 0; i < result.suggestions.count; i++) { | ||
const s = result.suggestions.objectAtIndex(i); | ||
suggestions.push(s.text); | ||
@@ -44,2 +41,1 @@ } | ||
} | ||
exports.suggestReplies = suggestReplies; |
@@ -1,22 +0,14 @@ | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.recognizeTextCloud = exports.recognizeTextOnDevice = exports.MLKitTextRecognition = void 0; | ||
var image_source_1 = require("@nativescript/core/image-source"); | ||
var textrecognition_common_1 = require("./textrecognition-common"); | ||
var MLKitTextRecognition = (function (_super) { | ||
__extends(MLKitTextRecognition, _super); | ||
function MLKitTextRecognition() { | ||
return _super !== null && _super.apply(this, arguments) || this; | ||
import { ImageSource } from "@nativescript/core/image-source"; | ||
import { MLKitTextRecognition as MLKitTextRecognitionBase } from "./textrecognition-common"; | ||
export class MLKitTextRecognition extends MLKitTextRecognitionBase { | ||
createDetector() { | ||
return com.google.firebase.ml.vision.FirebaseVision.getInstance().getOnDeviceTextRecognizer(); | ||
} | ||
MLKitTextRecognition.prototype.createDetector = function () { | ||
return com.google.firebase.ml.vision.FirebaseVision.getInstance().getOnDeviceTextRecognizer(); | ||
}; | ||
MLKitTextRecognition.prototype.createSuccessListener = function () { | ||
var _this = this; | ||
createSuccessListener() { | ||
return new com.google.android.gms.tasks.OnSuccessListener({ | ||
onSuccess: function (firebaseVisionText) { | ||
onSuccess: firebaseVisionText => { | ||
if (firebaseVisionText.getTextBlocks().size() > 0) { | ||
_this.notify({ | ||
this.notify({ | ||
eventName: MLKitTextRecognition.scanResultEvent, | ||
object: _this, | ||
object: this, | ||
value: getResult(firebaseVisionText) | ||
@@ -27,6 +19,4 @@ }); | ||
}); | ||
}; | ||
return MLKitTextRecognition; | ||
}(textrecognition_common_1.MLKitTextRecognition)); | ||
exports.MLKitTextRecognition = MLKitTextRecognition; | ||
} | ||
} | ||
function boundingBoxToBounds(rect) { | ||
@@ -48,3 +38,3 @@ return { | ||
} | ||
var result = { | ||
const result = { | ||
text: firebaseVisionText.getText(), | ||
@@ -54,12 +44,12 @@ blocks: [], | ||
}; | ||
for (var i = 0; i < firebaseVisionText.getTextBlocks().size(); i++) { | ||
var textBlock = firebaseVisionText.getTextBlocks().get(i); | ||
var lines = textBlock.getLines(); | ||
var lns = []; | ||
for (var j = 0; j < lines.size(); j++) { | ||
var line = lines.get(j); | ||
var elements = line.getElements(); | ||
var elms = []; | ||
for (var k = 0; k < elements.size(); k++) { | ||
var element = elements.get(k); | ||
for (let i = 0; i < firebaseVisionText.getTextBlocks().size(); i++) { | ||
const textBlock = firebaseVisionText.getTextBlocks().get(i); | ||
const lines = textBlock.getLines(); | ||
const lns = []; | ||
for (let j = 0; j < lines.size(); j++) { | ||
const line = lines.get(j); | ||
const elements = line.getElements(); | ||
const elms = []; | ||
for (let k = 0; k < elements.size(); k++) { | ||
const element = elements.get(k); | ||
elms.push({ | ||
@@ -86,16 +76,16 @@ text: element.getText(), | ||
} | ||
function recognizeTextOnDevice(options) { | ||
return new Promise(function (resolve, reject) { | ||
export function recognizeTextOnDevice(options) { | ||
return new Promise((resolve, reject) => { | ||
try { | ||
var firebaseVisionTextRecognizer_1 = com.google.firebase.ml.vision.FirebaseVision.getInstance().getOnDeviceTextRecognizer(); | ||
var onSuccessListener = new com.google.android.gms.tasks.OnSuccessListener({ | ||
onSuccess: function (firebaseVisionText) { | ||
const firebaseVisionTextRecognizer = com.google.firebase.ml.vision.FirebaseVision.getInstance().getOnDeviceTextRecognizer(); | ||
const onSuccessListener = new com.google.android.gms.tasks.OnSuccessListener({ | ||
onSuccess: firebaseVisionText => { | ||
resolve(getResult(firebaseVisionText)); | ||
firebaseVisionTextRecognizer_1.close(); | ||
firebaseVisionTextRecognizer.close(); | ||
} | ||
}); | ||
var onFailureListener = new com.google.android.gms.tasks.OnFailureListener({ | ||
onFailure: function (exception) { return reject(exception.getMessage()); } | ||
const onFailureListener = new com.google.android.gms.tasks.OnFailureListener({ | ||
onFailure: exception => reject(exception.getMessage()) | ||
}); | ||
firebaseVisionTextRecognizer_1 | ||
firebaseVisionTextRecognizer | ||
.processImage(getImage(options)) | ||
@@ -111,17 +101,16 @@ .addOnSuccessListener(onSuccessListener) | ||
} | ||
exports.recognizeTextOnDevice = recognizeTextOnDevice; | ||
function recognizeTextCloud(options) { | ||
return new Promise(function (resolve, reject) { | ||
export function recognizeTextCloud(options) { | ||
return new Promise((resolve, reject) => { | ||
try { | ||
var firebaseVisionCloudTextRecognizer_1 = com.google.firebase.ml.vision.FirebaseVision.getInstance().getCloudTextRecognizer(); | ||
var onSuccessListener = new com.google.android.gms.tasks.OnSuccessListener({ | ||
onSuccess: function (firebaseVisionText) { | ||
const firebaseVisionCloudTextRecognizer = com.google.firebase.ml.vision.FirebaseVision.getInstance().getCloudTextRecognizer(); | ||
const onSuccessListener = new com.google.android.gms.tasks.OnSuccessListener({ | ||
onSuccess: firebaseVisionText => { | ||
resolve(getResult(firebaseVisionText)); | ||
firebaseVisionCloudTextRecognizer_1.close(); | ||
firebaseVisionCloudTextRecognizer.close(); | ||
} | ||
}); | ||
var onFailureListener = new com.google.android.gms.tasks.OnFailureListener({ | ||
onFailure: function (exception) { return reject(exception.getMessage()); } | ||
const onFailureListener = new com.google.android.gms.tasks.OnFailureListener({ | ||
onFailure: exception => reject(exception.getMessage()) | ||
}); | ||
firebaseVisionCloudTextRecognizer_1 | ||
firebaseVisionCloudTextRecognizer | ||
.processImage(getImage(options)) | ||
@@ -137,6 +126,5 @@ .addOnSuccessListener(onSuccessListener) | ||
} | ||
exports.recognizeTextCloud = recognizeTextCloud; | ||
function getImage(options) { | ||
var image = options.image instanceof image_source_1.ImageSource ? options.image.android : options.image.imageSource.android; | ||
const image = options.image instanceof ImageSource ? options.image.android : options.image.imageSource.android; | ||
return com.google.firebase.ml.vision.common.FirebaseVisionImage.fromBitmap(image); | ||
} |
@@ -1,18 +0,10 @@ | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.recognizeTextCloud = exports.recognizeTextOnDevice = exports.MLKitTextRecognition = void 0; | ||
var image_source_1 = require("@nativescript/core/image-source"); | ||
var textrecognition_common_1 = require("./textrecognition-common"); | ||
var MLKitTextRecognition = (function (_super) { | ||
__extends(MLKitTextRecognition, _super); | ||
function MLKitTextRecognition() { | ||
return _super !== null && _super.apply(this, arguments) || this; | ||
import { ImageSource } from "@nativescript/core/image-source"; | ||
import { MLKitTextRecognition as MLKitTextRecognitionBase } from "./textrecognition-common"; | ||
export class MLKitTextRecognition extends MLKitTextRecognitionBase { | ||
createDetector() { | ||
const firVision = FIRVision.vision(); | ||
return firVision.onDeviceTextRecognizer(); | ||
} | ||
MLKitTextRecognition.prototype.createDetector = function () { | ||
var firVision = FIRVision.vision(); | ||
return firVision.onDeviceTextRecognizer(); | ||
}; | ||
MLKitTextRecognition.prototype.createSuccessListener = function () { | ||
var _this = this; | ||
return function (visionText, error) { | ||
createSuccessListener() { | ||
return (visionText, error) => { | ||
if (error !== null) { | ||
@@ -22,5 +14,5 @@ console.log(error.localizedDescription); | ||
else if (visionText !== null) { | ||
_this.notify({ | ||
this.notify({ | ||
eventName: MLKitTextRecognition.scanResultEvent, | ||
object: _this, | ||
object: this, | ||
value: getResult(visionText) | ||
@@ -30,9 +22,7 @@ }); | ||
}; | ||
}; | ||
MLKitTextRecognition.prototype.rotateRecording = function () { | ||
} | ||
rotateRecording() { | ||
return true; | ||
}; | ||
return MLKitTextRecognition; | ||
}(textrecognition_common_1.MLKitTextRecognition)); | ||
exports.MLKitTextRecognition = MLKitTextRecognition; | ||
} | ||
} | ||
function getResult(visionText) { | ||
@@ -42,3 +32,3 @@ if (visionText === null) { | ||
} | ||
var result = { | ||
const result = { | ||
text: visionText.text, | ||
@@ -48,5 +38,5 @@ blocks: [], | ||
}; | ||
var _loop_1 = function (i, l) { | ||
var feature = visionText.blocks.objectAtIndex(i); | ||
var resultFeature = { | ||
for (let i = 0, l = visionText.blocks.count; i < l; i++) { | ||
const feature = visionText.blocks.objectAtIndex(i); | ||
const resultFeature = { | ||
text: feature.text, | ||
@@ -57,4 +47,4 @@ confidence: feature.confidence, | ||
}; | ||
var addLineToResult = function (line) { | ||
var resultLine = { | ||
const addLineToResult = (line) => { | ||
const resultLine = { | ||
text: feature.text, | ||
@@ -65,4 +55,4 @@ confidence: line.confidence, | ||
}; | ||
for (var a = 0, m = line.elements.count; a < m; a++) { | ||
var element = line.elements.objectAtIndex(a); | ||
for (let a = 0, m = line.elements.count; a < m; a++) { | ||
const element = line.elements.objectAtIndex(a); | ||
resultLine.elements.push({ | ||
@@ -76,4 +66,4 @@ text: element.text, | ||
if (feature instanceof FIRVisionTextBlock) { | ||
var textBlock = feature; | ||
for (var j = 0, k = textBlock.lines.count; j < k; j++) { | ||
const textBlock = feature; | ||
for (let j = 0, k = textBlock.lines.count; j < k; j++) { | ||
addLineToResult(textBlock.lines.objectAtIndex(j)); | ||
@@ -86,14 +76,11 @@ } | ||
result.blocks.push(resultFeature); | ||
}; | ||
for (var i = 0, l = visionText.blocks.count; i < l; i++) { | ||
_loop_1(i, l); | ||
} | ||
return result; | ||
} | ||
function recognizeTextOnDevice(options) { | ||
return new Promise(function (resolve, reject) { | ||
export function recognizeTextOnDevice(options) { | ||
return new Promise((resolve, reject) => { | ||
try { | ||
var firVision = FIRVision.vision(); | ||
var textDetector = firVision.onDeviceTextRecognizer(); | ||
textDetector.processImageCompletion(getImage(options), function (visionText, error) { | ||
const firVision = FIRVision.vision(); | ||
const textDetector = firVision.onDeviceTextRecognizer(); | ||
textDetector.processImageCompletion(getImage(options), (visionText, error) => { | ||
if (error !== null) { | ||
@@ -113,11 +100,10 @@ reject(error.localizedDescription); | ||
} | ||
exports.recognizeTextOnDevice = recognizeTextOnDevice; | ||
function recognizeTextCloud(options) { | ||
return new Promise(function (resolve, reject) { | ||
export function recognizeTextCloud(options) { | ||
return new Promise((resolve, reject) => { | ||
try { | ||
var fIRVisionCloudDetectorOptions = FIRVisionCloudTextRecognizerOptions.new(); | ||
const fIRVisionCloudDetectorOptions = FIRVisionCloudTextRecognizerOptions.new(); | ||
fIRVisionCloudDetectorOptions.modelType = 0; | ||
var firVision = FIRVision.vision(); | ||
var textDetector = firVision.cloudTextRecognizerWithOptions(fIRVisionCloudDetectorOptions); | ||
textDetector.processImageCompletion(getImage(options), function (visionText, error) { | ||
const firVision = FIRVision.vision(); | ||
const textDetector = firVision.cloudTextRecognizerWithOptions(fIRVisionCloudDetectorOptions); | ||
textDetector.processImageCompletion(getImage(options), (visionText, error) => { | ||
console.log(">>> recognizeTextCloud error? " + error + ", visionText? " + visionText); | ||
@@ -141,6 +127,5 @@ if (error !== null) { | ||
} | ||
exports.recognizeTextCloud = recognizeTextCloud; | ||
function getImage(options) { | ||
var image = options.image instanceof image_source_1.ImageSource ? options.image.ios : options.image.imageSource.ios; | ||
const image = options.image instanceof ImageSource ? options.image.ios : options.image.imageSource.ios; | ||
return FIRVisionImage.alloc().initWithImage(image); | ||
} |
@@ -1,24 +0,15 @@ | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.MLKitTextRecognition = exports.reportDuplicatesProperty = void 0; | ||
var view_base_1 = require("@nativescript/core/ui/core/view-base"); | ||
var properties_1 = require("@nativescript/core/ui/core/properties"); | ||
var mlkit_cameraview_1 = require("../mlkit-cameraview"); | ||
exports.reportDuplicatesProperty = new properties_1.Property({ | ||
import { booleanConverter } from "@nativescript/core/ui/core/view-base"; | ||
import { Property } from "@nativescript/core/ui/core/properties"; | ||
import { MLKitCameraView } from "../mlkit-cameraview"; | ||
export const reportDuplicatesProperty = new Property({ | ||
name: "reportDuplicates", | ||
defaultValue: false, | ||
valueConverter: view_base_1.booleanConverter | ||
valueConverter: booleanConverter | ||
}); | ||
var MLKitTextRecognition = (function (_super) { | ||
__extends(MLKitTextRecognition, _super); | ||
function MLKitTextRecognition() { | ||
return _super !== null && _super.apply(this, arguments) || this; | ||
export class MLKitTextRecognition extends MLKitCameraView { | ||
[reportDuplicatesProperty.setNative](value) { | ||
this.reportDuplicates = value; | ||
} | ||
MLKitTextRecognition.prototype[exports.reportDuplicatesProperty.setNative] = function (value) { | ||
this.reportDuplicates = value; | ||
}; | ||
MLKitTextRecognition.scanResultEvent = "scanResult"; | ||
return MLKitTextRecognition; | ||
}(mlkit_cameraview_1.MLKitCameraView)); | ||
exports.MLKitTextRecognition = MLKitTextRecognition; | ||
exports.reportDuplicatesProperty.register(MLKitTextRecognition); | ||
} | ||
MLKitTextRecognition.scanResultEvent = "scanResult"; | ||
reportDuplicatesProperty.register(MLKitTextRecognition); |
@@ -1,26 +0,22 @@ | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.translateText = exports.ensureTranslationModelDownloaded = void 0; | ||
function ensureTranslationModelDownloaded(options) { | ||
return new Promise(function (resolve, reject) { | ||
export function ensureTranslationModelDownloaded(options) { | ||
return new Promise((resolve, reject) => { | ||
_downloadTranslationModelIfNeeded(options) | ||
.then(function () { return resolve(); }) | ||
.then(() => resolve()) | ||
.catch(reject); | ||
}); | ||
} | ||
exports.ensureTranslationModelDownloaded = ensureTranslationModelDownloaded; | ||
function translateText(options) { | ||
return new Promise(function (resolve, reject) { | ||
export function translateText(options) { | ||
return new Promise((resolve, reject) => { | ||
try { | ||
var onSuccessListener_1 = new com.google.android.gms.tasks.OnSuccessListener({ | ||
onSuccess: function (result) { return resolve(result); } | ||
const onSuccessListener = new com.google.android.gms.tasks.OnSuccessListener({ | ||
onSuccess: (result) => resolve(result) | ||
}); | ||
var onFailureListener_1 = new com.google.android.gms.tasks.OnFailureListener({ | ||
onFailure: function (exception) { return reject(exception.getMessage()); } | ||
const onFailureListener = new com.google.android.gms.tasks.OnFailureListener({ | ||
onFailure: exception => reject(exception.getMessage()) | ||
}); | ||
_downloadTranslationModelIfNeeded(options) | ||
.then(function (translator) { | ||
.then(translator => { | ||
translator.translate(options.text) | ||
.addOnSuccessListener(onSuccessListener_1) | ||
.addOnFailureListener(onFailureListener_1); | ||
.addOnSuccessListener(onSuccessListener) | ||
.addOnFailureListener(onFailureListener); | ||
}) | ||
@@ -35,23 +31,22 @@ .catch(reject); | ||
} | ||
exports.translateText = translateText; | ||
function _downloadTranslationModelIfNeeded(options) { | ||
return new Promise(function (resolve, reject) { | ||
return new Promise((resolve, reject) => { | ||
try { | ||
var source = +com.google.firebase.ml.naturallanguage.translate.FirebaseTranslateLanguage.languageForLanguageCode(options.from); | ||
var target = +com.google.firebase.ml.naturallanguage.translate.FirebaseTranslateLanguage.languageForLanguageCode(options.to); | ||
var firTranslatorOptions = new com.google.firebase.ml.naturallanguage.translate.FirebaseTranslatorOptions.Builder() | ||
const source = +com.google.firebase.ml.naturallanguage.translate.FirebaseTranslateLanguage.languageForLanguageCode(options.from); | ||
const target = +com.google.firebase.ml.naturallanguage.translate.FirebaseTranslateLanguage.languageForLanguageCode(options.to); | ||
const firTranslatorOptions = new com.google.firebase.ml.naturallanguage.translate.FirebaseTranslatorOptions.Builder() | ||
.setSourceLanguage(source) | ||
.setTargetLanguage(target) | ||
.build(); | ||
var firTranslator_1 = com.google.firebase.ml.naturallanguage.FirebaseNaturalLanguage.getInstance().getTranslator(firTranslatorOptions); | ||
var modelDownloadConditions = new com.google.firebase.ml.common.modeldownload.FirebaseModelDownloadConditions.Builder() | ||
const firTranslator = com.google.firebase.ml.naturallanguage.FirebaseNaturalLanguage.getInstance().getTranslator(firTranslatorOptions); | ||
const modelDownloadConditions = new com.google.firebase.ml.common.modeldownload.FirebaseModelDownloadConditions.Builder() | ||
.requireWifi() | ||
.build(); | ||
var onSuccessListener = new com.google.android.gms.tasks.OnSuccessListener({ | ||
onSuccess: function () { return resolve(firTranslator_1); } | ||
const onSuccessListener = new com.google.android.gms.tasks.OnSuccessListener({ | ||
onSuccess: () => resolve(firTranslator) | ||
}); | ||
var onFailureListener = new com.google.android.gms.tasks.OnFailureListener({ | ||
onFailure: function (exception) { return reject(exception.getMessage()); } | ||
const onFailureListener = new com.google.android.gms.tasks.OnFailureListener({ | ||
onFailure: exception => reject(exception.getMessage()) | ||
}); | ||
firTranslator_1.downloadModelIfNeeded(modelDownloadConditions) | ||
firTranslator.downloadModelIfNeeded(modelDownloadConditions) | ||
.addOnSuccessListener(onSuccessListener) | ||
@@ -58,0 +53,0 @@ .addOnFailureListener(onFailureListener); |
@@ -1,18 +0,14 @@ | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.translateText = exports.ensureTranslationModelDownloaded = void 0; | ||
function ensureTranslationModelDownloaded(options) { | ||
return new Promise(function (resolve, reject) { | ||
export function ensureTranslationModelDownloaded(options) { | ||
return new Promise((resolve, reject) => { | ||
_downloadTranslationModelIfNeeded(options) | ||
.then(function () { return resolve(); }) | ||
.then(() => resolve()) | ||
.catch(reject); | ||
}); | ||
} | ||
exports.ensureTranslationModelDownloaded = ensureTranslationModelDownloaded; | ||
function translateText(options) { | ||
return new Promise(function (resolve, reject) { | ||
export function translateText(options) { | ||
return new Promise((resolve, reject) => { | ||
try { | ||
_downloadTranslationModelIfNeeded(options) | ||
.then(function (firTranslator) { | ||
firTranslator.translateTextCompletion(options.text, (function (result, error) { | ||
.then(firTranslator => { | ||
firTranslator.translateTextCompletion(options.text, ((result, error) => { | ||
error ? reject(error.localizedDescription) : resolve(result); | ||
@@ -29,12 +25,11 @@ })); | ||
} | ||
exports.translateText = translateText; | ||
function _downloadTranslationModelIfNeeded(options) { | ||
return new Promise(function (resolve, reject) { | ||
return new Promise((resolve, reject) => { | ||
try { | ||
var firTranslatorOptions = FIRTranslatorOptions.alloc().initWithSourceLanguageTargetLanguage(FIRTranslateLanguageForLanguageCode(options.from), FIRTranslateLanguageForLanguageCode(options.to)); | ||
var nl = FIRNaturalLanguage.naturalLanguage(); | ||
var firTranslator_1 = nl.translatorWithOptions(firTranslatorOptions); | ||
var firModelDownloadConditions = FIRModelDownloadConditions.alloc().initWithAllowsCellularAccessAllowsBackgroundDownloading(false, true); | ||
firTranslator_1.downloadModelIfNeededWithConditionsCompletion(firModelDownloadConditions, function (error) { | ||
error ? reject(error.localizedDescription) : resolve(firTranslator_1); | ||
const firTranslatorOptions = FIRTranslatorOptions.alloc().initWithSourceLanguageTargetLanguage(FIRTranslateLanguageForLanguageCode(options.from), FIRTranslateLanguageForLanguageCode(options.to)); | ||
const nl = FIRNaturalLanguage.naturalLanguage(); | ||
const firTranslator = nl.translatorWithOptions(firTranslatorOptions); | ||
const firModelDownloadConditions = FIRModelDownloadConditions.alloc().initWithAllowsCellularAccessAllowsBackgroundDownloading(false, true); | ||
firTranslator.downloadModelIfNeededWithConditionsCompletion(firModelDownloadConditions, (error) => { | ||
error ? reject(error.localizedDescription) : resolve(firTranslator); | ||
}); | ||
@@ -41,0 +36,0 @@ } |
{ | ||
"name": "nativescript-plugin-firebase-updated", | ||
"version": "2110.4.0", | ||
"version": "2210.4.0", | ||
"description": "Fire. Base. Firebase!", | ||
@@ -39,3 +39,3 @@ "main": "firebase", | ||
"config": "node scripts/postinstall.js config", | ||
"tsc": "tsc -skipLibCheck", | ||
"tsc": "ts-patch install && tsc -skipLibCheck", | ||
"plugin.tscwatch": "npm run tsc -- -w", | ||
@@ -140,4 +140,5 @@ "package": "cd ../publish && ./pack.sh", | ||
"prompt-lite": "~0.1.1", | ||
"xcode": "~0.9.3", | ||
"semver": "~5.7.1" | ||
"semver": "~5.7.1", | ||
"ts-node": "^9.0.0", | ||
"xcode": "~0.9.3" | ||
}, | ||
@@ -147,3 +148,5 @@ "devDependencies": { | ||
"@nativescript/types": "~7.0.0", | ||
"@nativescript/webpack": "~3.0.0", | ||
"rimraf": "~2.7.1", | ||
"ts-patch": "^1.3.0", | ||
"tslint": "~5.20.1", | ||
@@ -150,0 +153,0 @@ "typescript": "~3.9.0" |
@@ -1,5 +0,2 @@ | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.performance = void 0; | ||
var perf = require("./performance"); | ||
exports.performance = perf; | ||
import * as perf from "./performance"; | ||
export const performance = perf; |
@@ -1,41 +0,35 @@ | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.FirebaseTrace = exports.startTrace = void 0; | ||
function startTrace(name) { | ||
var trace = com.google.firebase.perf.FirebasePerformance.getInstance().newTrace(name); | ||
export function startTrace(name) { | ||
const trace = com.google.firebase.perf.FirebasePerformance.getInstance().newTrace(name); | ||
trace.start(); | ||
return new FirebaseTrace(trace); | ||
} | ||
exports.startTrace = startTrace; | ||
var FirebaseTrace = (function () { | ||
function FirebaseTrace(nativeTrace) { | ||
export class FirebaseTrace { | ||
constructor(nativeTrace) { | ||
this.nativeTrace = nativeTrace; | ||
} | ||
FirebaseTrace.prototype.setValue = function (attribute, value) { | ||
setValue(attribute, value) { | ||
this.nativeTrace.putAttribute(attribute, value); | ||
}; | ||
FirebaseTrace.prototype.getValue = function (attribute) { | ||
} | ||
getValue(attribute) { | ||
return this.nativeTrace.getAttribute(attribute); | ||
}; | ||
FirebaseTrace.prototype.getAttributes = function () { | ||
var attributes = this.nativeTrace.getAttributes(); | ||
var node = {}; | ||
var iterator = attributes.entrySet().iterator(); | ||
} | ||
getAttributes() { | ||
const attributes = this.nativeTrace.getAttributes(); | ||
const node = {}; | ||
const iterator = attributes.entrySet().iterator(); | ||
while (iterator.hasNext()) { | ||
var item = iterator.next(); | ||
const item = iterator.next(); | ||
node[item.getKey()] = item.getValue(); | ||
} | ||
return node; | ||
}; | ||
FirebaseTrace.prototype.removeAttribute = function (attribute) { | ||
} | ||
removeAttribute(attribute) { | ||
this.nativeTrace.removeAttribute(attribute); | ||
}; | ||
FirebaseTrace.prototype.incrementMetric = function (metric, by) { | ||
} | ||
incrementMetric(metric, by) { | ||
this.nativeTrace.incrementMetric(metric, by); | ||
}; | ||
FirebaseTrace.prototype.stop = function () { | ||
} | ||
stop() { | ||
this.nativeTrace.stop(); | ||
}; | ||
return FirebaseTrace; | ||
}()); | ||
exports.FirebaseTrace = FirebaseTrace; | ||
} | ||
} |
@@ -1,33 +0,27 @@ | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.FirebaseTrace = exports.startTrace = void 0; | ||
var utils_1 = require("../utils"); | ||
function startTrace(name) { | ||
import { firebaseUtils } from "../utils"; | ||
export function startTrace(name) { | ||
return new FirebaseTrace(FIRPerformance.startTraceWithName(name)); | ||
} | ||
exports.startTrace = startTrace; | ||
var FirebaseTrace = (function () { | ||
function FirebaseTrace(nativeTrace) { | ||
export class FirebaseTrace { | ||
constructor(nativeTrace) { | ||
this.nativeTrace = nativeTrace; | ||
} | ||
FirebaseTrace.prototype.setValue = function (attribute, value) { | ||
setValue(attribute, value) { | ||
this.nativeTrace.setValueForAttribute(value, attribute); | ||
}; | ||
FirebaseTrace.prototype.getValue = function (attribute) { | ||
} | ||
getValue(attribute) { | ||
return this.nativeTrace.valueForAttribute(attribute); | ||
}; | ||
FirebaseTrace.prototype.getAttributes = function () { | ||
return utils_1.firebaseUtils.toJsObject(this.nativeTrace.attributes); | ||
}; | ||
FirebaseTrace.prototype.removeAttribute = function (attribute) { | ||
} | ||
getAttributes() { | ||
return firebaseUtils.toJsObject(this.nativeTrace.attributes); | ||
} | ||
removeAttribute(attribute) { | ||
this.nativeTrace.removeAttribute(attribute); | ||
}; | ||
FirebaseTrace.prototype.incrementMetric = function (metric, by) { | ||
} | ||
incrementMetric(metric, by) { | ||
this.nativeTrace.incrementMetricByInt(metric, by); | ||
}; | ||
FirebaseTrace.prototype.stop = function () { | ||
} | ||
stop() { | ||
this.nativeTrace.stop(); | ||
}; | ||
return FirebaseTrace; | ||
}()); | ||
exports.FirebaseTrace = FirebaseTrace; | ||
} | ||
} |
@@ -1,5 +0,2 @@ | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.storage = void 0; | ||
var strg = require("./storage"); | ||
exports.storage = strg; | ||
import * as strg from "./storage"; | ||
export const storage = strg; |
@@ -1,6 +0,3 @@ | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.ListResult = void 0; | ||
var ListResult = (function () { | ||
function ListResult(items, prefixes, nextPageToken) { | ||
export class ListResult { | ||
constructor(items, prefixes, nextPageToken) { | ||
this.items = items; | ||
@@ -10,4 +7,2 @@ this.prefixes = prefixes; | ||
} | ||
return ListResult; | ||
}()); | ||
exports.ListResult = ListResult; | ||
} |
@@ -1,8 +0,5 @@ | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.listAll = exports.deleteFile = exports.getDownloadUrl = exports.downloadFile = exports.uploadFile = void 0; | ||
var file_system_1 = require("@nativescript/core/file-system"); | ||
var firebase_common_1 = require("../firebase-common"); | ||
var storage_common_1 = require("./storage-common"); | ||
var gmsTasks = com.google.android.gms ? com.google.android.gms.tasks : undefined; | ||
import { File } from "@nativescript/core/file-system"; | ||
import { firebase } from "../firebase-common"; | ||
import { ListResult as ListResultBase } from "./storage-common"; | ||
const gmsTasks = com.google.android.gms ? com.google.android.gms.tasks : undefined; | ||
function getReference(nativeReference, listOptions) { | ||
@@ -14,9 +11,9 @@ return { | ||
fullPath: nativeReference.getPath(), | ||
listAll: function () { return listAll({ remoteFullPath: nativeReference.getPath(), bucket: listOptions.bucket }); } | ||
listAll: () => listAll({ remoteFullPath: nativeReference.getPath(), bucket: listOptions.bucket }) | ||
}; | ||
} | ||
function getReferences(nativeReferences, listOptions) { | ||
var references = []; | ||
for (var i = 0; i < nativeReferences.size(); i++) { | ||
var ref = nativeReferences.get(i); | ||
const references = []; | ||
for (let i = 0; i < nativeReferences.size(); i++) { | ||
const ref = nativeReferences.get(i); | ||
references.push(getReference(ref, listOptions)); | ||
@@ -26,15 +23,12 @@ } | ||
} | ||
var ListResult = (function (_super) { | ||
__extends(ListResult, _super); | ||
function ListResult(listResult, listOptions) { | ||
var _this = _super.call(this, getReferences(listResult.getItems(), listOptions), getReferences(listResult.getPrefixes(), listOptions), listResult.getPageToken()) || this; | ||
_this.listResult = listResult; | ||
_this.listOptions = listOptions; | ||
_this.android = listResult; | ||
delete _this.listResult; | ||
delete _this.listOptions; | ||
return _this; | ||
class ListResult extends ListResultBase { | ||
constructor(listResult, listOptions) { | ||
super(getReferences(listResult.getItems(), listOptions), getReferences(listResult.getPrefixes(), listOptions), listResult.getPageToken()); | ||
this.listResult = listResult; | ||
this.listOptions = listOptions; | ||
this.android = listResult; | ||
delete this.listResult; | ||
delete this.listOptions; | ||
} | ||
return ListResult; | ||
}(storage_common_1.ListResult)); | ||
} | ||
function getStorageRef(reject, arg) { | ||
@@ -52,4 +46,4 @@ if (typeof (com.google.firebase.storage) === "undefined") { | ||
} | ||
else if (firebase_common_1.firebase.storageBucket) { | ||
return firebase_common_1.firebase.storageBucket; | ||
else if (firebase.storageBucket) { | ||
return firebase.storageBucket; | ||
} | ||
@@ -60,13 +54,13 @@ else { | ||
} | ||
function uploadFile(arg) { | ||
return new Promise(function (resolve, reject) { | ||
export function uploadFile(arg) { | ||
return new Promise((resolve, reject) => { | ||
try { | ||
var storageRef = getStorageRef(reject, arg); | ||
const storageRef = getStorageRef(reject, arg); | ||
if (!storageRef) { | ||
return; | ||
} | ||
var storageReference = storageRef.child(arg.remoteFullPath); | ||
var onSuccessListener = new gmsTasks.OnSuccessListener({ | ||
onSuccess: function (uploadTaskSnapshot) { | ||
var metadata = uploadTaskSnapshot.getMetadata(); | ||
const storageReference = storageRef.child(arg.remoteFullPath); | ||
const onSuccessListener = new gmsTasks.OnSuccessListener({ | ||
onSuccess: uploadTaskSnapshot => { | ||
const metadata = uploadTaskSnapshot.getMetadata(); | ||
resolve({ | ||
@@ -82,11 +76,11 @@ name: metadata.getName(), | ||
}); | ||
var onFailureListener = new gmsTasks.OnFailureListener({ | ||
onFailure: function (exception) { | ||
const onFailureListener = new gmsTasks.OnFailureListener({ | ||
onFailure: exception => { | ||
reject("Upload failed. " + exception); | ||
} | ||
}); | ||
var onProgressListener = new com.google.firebase.storage.OnProgressListener({ | ||
onProgress: function (snapshot) { | ||
const onProgressListener = new com.google.firebase.storage.OnProgressListener({ | ||
onProgress: (snapshot) => { | ||
if (typeof (arg.onProgress) === "function") { | ||
var fractionCompleted = snapshot.getBytesTransferred() / snapshot.getTotalByteCount(); | ||
const fractionCompleted = snapshot.getBytesTransferred() / snapshot.getTotalByteCount(); | ||
arg.onProgress({ | ||
@@ -99,5 +93,5 @@ fractionCompleted: fractionCompleted, | ||
}); | ||
var metadata = null; | ||
let metadata = null; | ||
if (arg.metadata) { | ||
var metadataBuilder = new com.google.firebase.storage.StorageMetadata.Builder(); | ||
const metadataBuilder = new com.google.firebase.storage.StorageMetadata.Builder(); | ||
if (arg.metadata.cacheControl) { | ||
@@ -119,3 +113,3 @@ metadataBuilder.setCacheControl(arg.metadata.cacheControl); | ||
if (arg.metadata.customMetadata) { | ||
for (var p in arg.metadata.customMetadata) { | ||
for (let p in arg.metadata.customMetadata) { | ||
metadataBuilder.setCustomMetadata(p, arg.metadata.customMetadata[p]); | ||
@@ -131,3 +125,3 @@ } | ||
} | ||
var localFileUrl = android.net.Uri.fromFile(new java.io.File(arg.localFile.path)); | ||
const localFileUrl = android.net.Uri.fromFile(new java.io.File(arg.localFile.path)); | ||
storageReference.putFile(localFileUrl, metadata) | ||
@@ -139,7 +133,7 @@ .addOnFailureListener(onFailureListener) | ||
else if (arg.localFullPath) { | ||
if (!file_system_1.File.exists(arg.localFullPath)) { | ||
if (!File.exists(arg.localFullPath)) { | ||
reject("File does not exist: " + arg.localFullPath); | ||
return; | ||
} | ||
var localFileUrl = android.net.Uri.fromFile(new java.io.File(arg.localFullPath)); | ||
const localFileUrl = android.net.Uri.fromFile(new java.io.File(arg.localFullPath)); | ||
storageReference.putFile(localFileUrl, metadata) | ||
@@ -160,18 +154,17 @@ .addOnFailureListener(onFailureListener) | ||
} | ||
exports.uploadFile = uploadFile; | ||
function downloadFile(arg) { | ||
return new Promise(function (resolve, reject) { | ||
export function downloadFile(arg) { | ||
return new Promise((resolve, reject) => { | ||
try { | ||
var storageRef = getStorageRef(reject, arg); | ||
const storageRef = getStorageRef(reject, arg); | ||
if (!storageRef) { | ||
return; | ||
} | ||
var storageReference = storageRef.child(arg.remoteFullPath); | ||
var onSuccessListener = new gmsTasks.OnSuccessListener({ | ||
onSuccess: function (downloadTaskSnapshot) { return resolve(); } | ||
const storageReference = storageRef.child(arg.remoteFullPath); | ||
const onSuccessListener = new gmsTasks.OnSuccessListener({ | ||
onSuccess: downloadTaskSnapshot => resolve() | ||
}); | ||
var onFailureListener = new gmsTasks.OnFailureListener({ | ||
onFailure: function (exception) { return reject("Download failed. " + exception); } | ||
const onFailureListener = new gmsTasks.OnFailureListener({ | ||
onFailure: exception => reject("Download failed. " + exception) | ||
}); | ||
var localFilePath = void 0; | ||
let localFilePath; | ||
if (arg.localFile) { | ||
@@ -191,3 +184,3 @@ if (typeof (arg.localFile) !== "object") { | ||
} | ||
var file = new java.io.File(localFilePath); | ||
const file = new java.io.File(localFilePath); | ||
storageReference.getFile(file) | ||
@@ -203,18 +196,17 @@ .addOnSuccessListener(onSuccessListener) | ||
} | ||
exports.downloadFile = downloadFile; | ||
function getDownloadUrl(arg) { | ||
return new Promise(function (resolve, reject) { | ||
export function getDownloadUrl(arg) { | ||
return new Promise((resolve, reject) => { | ||
try { | ||
var storageRef = getStorageRef(reject, arg); | ||
const storageRef = getStorageRef(reject, arg); | ||
if (!storageRef) { | ||
return; | ||
} | ||
var storageReference = storageRef.child(arg.remoteFullPath); | ||
var onSuccessListener = new gmsTasks.OnSuccessListener({ | ||
onSuccess: function (uri) { | ||
const storageReference = storageRef.child(arg.remoteFullPath); | ||
const onSuccessListener = new gmsTasks.OnSuccessListener({ | ||
onSuccess: uri => { | ||
resolve(uri.toString()); | ||
} | ||
}); | ||
var onFailureListener = new gmsTasks.OnFailureListener({ | ||
onFailure: function (exception) { | ||
const onFailureListener = new gmsTasks.OnFailureListener({ | ||
onFailure: exception => { | ||
reject(exception.getMessage()); | ||
@@ -233,18 +225,17 @@ } | ||
} | ||
exports.getDownloadUrl = getDownloadUrl; | ||
function deleteFile(arg) { | ||
return new Promise(function (resolve, reject) { | ||
export function deleteFile(arg) { | ||
return new Promise((resolve, reject) => { | ||
try { | ||
var storageRef = getStorageRef(reject, arg); | ||
const storageRef = getStorageRef(reject, arg); | ||
if (!storageRef) { | ||
return; | ||
} | ||
var storageReference = storageRef.child(arg.remoteFullPath); | ||
var onSuccessListener = new gmsTasks.OnSuccessListener({ | ||
onSuccess: function () { | ||
const storageReference = storageRef.child(arg.remoteFullPath); | ||
const onSuccessListener = new gmsTasks.OnSuccessListener({ | ||
onSuccess: () => { | ||
resolve(); | ||
} | ||
}); | ||
var onFailureListener = new gmsTasks.OnFailureListener({ | ||
onFailure: function (exception) { | ||
const onFailureListener = new gmsTasks.OnFailureListener({ | ||
onFailure: exception => { | ||
reject(exception.getMessage()); | ||
@@ -263,19 +254,18 @@ } | ||
} | ||
exports.deleteFile = deleteFile; | ||
function listAll(listOptions) { | ||
return new Promise(function (resolve, reject) { | ||
export function listAll(listOptions) { | ||
return new Promise((resolve, reject) => { | ||
try { | ||
var storageRef = getStorageRef(reject, listOptions); | ||
const storageRef = getStorageRef(reject, listOptions); | ||
if (!storageRef) { | ||
return; | ||
} | ||
var onSuccessListener = new gmsTasks.OnSuccessListener({ | ||
onSuccess: function (result) { return resolve(new ListResult(result, listOptions)); } | ||
const onSuccessListener = new gmsTasks.OnSuccessListener({ | ||
onSuccess: result => resolve(new ListResult(result, listOptions)) | ||
}); | ||
var onFailureListener = new gmsTasks.OnFailureListener({ | ||
onFailure: function (exception) { | ||
const onFailureListener = new gmsTasks.OnFailureListener({ | ||
onFailure: exception => { | ||
reject(exception.getCause() ? exception.getCause().getMessage() : exception.getMessage()); | ||
} | ||
}); | ||
var storageReference = storageRef.child(listOptions.remoteFullPath); | ||
const storageReference = storageRef.child(listOptions.remoteFullPath); | ||
storageReference.listAll() | ||
@@ -291,2 +281,1 @@ .addOnSuccessListener(onSuccessListener) | ||
} | ||
exports.listAll = listAll; |
@@ -1,6 +0,3 @@ | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.listAll = exports.deleteFile = exports.getDownloadUrl = exports.downloadFile = exports.uploadFile = void 0; | ||
var firebase_common_1 = require("../firebase-common"); | ||
var storage_common_1 = require("./storage-common"); | ||
import { firebase } from "../firebase-common"; | ||
import { ListResult as ListResultBase } from "./storage-common"; | ||
function getReference(nativeReference, listOptions) { | ||
@@ -12,9 +9,9 @@ return { | ||
fullPath: nativeReference.fullPath, | ||
listAll: function () { return listAll({ remoteFullPath: nativeReference.fullPath, bucket: listOptions.bucket }); } | ||
listAll: () => listAll({ remoteFullPath: nativeReference.fullPath, bucket: listOptions.bucket }) | ||
}; | ||
} | ||
function getReferences(nativeReferences, listOptions) { | ||
var references = []; | ||
for (var i = 0, l = nativeReferences.count; i < l; i++) { | ||
var ref = nativeReferences.objectAtIndex(i); | ||
const references = []; | ||
for (let i = 0, l = nativeReferences.count; i < l; i++) { | ||
const ref = nativeReferences.objectAtIndex(i); | ||
references.push(getReference(ref, listOptions)); | ||
@@ -24,15 +21,12 @@ } | ||
} | ||
var ListResult = (function (_super) { | ||
__extends(ListResult, _super); | ||
function ListResult(listResult, listOptions) { | ||
var _this = _super.call(this, getReferences(listResult.items, listOptions), getReferences(listResult.prefixes, listOptions), listResult.pageToken) || this; | ||
_this.listResult = listResult; | ||
_this.listOptions = listOptions; | ||
_this.ios = listResult; | ||
delete _this.listResult; | ||
delete _this.listOptions; | ||
return _this; | ||
class ListResult extends ListResultBase { | ||
constructor(listResult, listOptions) { | ||
super(getReferences(listResult.items, listOptions), getReferences(listResult.prefixes, listOptions), listResult.pageToken); | ||
this.listResult = listResult; | ||
this.listOptions = listOptions; | ||
this.ios = listResult; | ||
delete this.listResult; | ||
delete this.listOptions; | ||
} | ||
return ListResult; | ||
}(storage_common_1.ListResult)); | ||
} | ||
function getStorageRef(reject, arg) { | ||
@@ -50,4 +44,4 @@ if (typeof (FIRStorage) === "undefined") { | ||
} | ||
else if (firebase_common_1.firebase.storageBucket) { | ||
return firebase_common_1.firebase.storageBucket; | ||
else if (firebase.storageBucket) { | ||
return firebase.storageBucket; | ||
} | ||
@@ -58,6 +52,6 @@ else { | ||
} | ||
function uploadFile(arg) { | ||
return new Promise(function (resolve, reject) { | ||
export function uploadFile(arg) { | ||
return new Promise((resolve, reject) => { | ||
try { | ||
var onCompletion = function (metadata, error) { | ||
const onCompletion = (metadata, error) => { | ||
if (error) { | ||
@@ -77,9 +71,9 @@ reject(error.localizedDescription); | ||
}; | ||
var storageRef = getStorageRef(reject, arg); | ||
const storageRef = getStorageRef(reject, arg); | ||
if (!storageRef) { | ||
return; | ||
} | ||
var fIRStorageReference = storageRef.child(arg.remoteFullPath); | ||
var fIRStorageUploadTask = null; | ||
var metadata = null; | ||
const fIRStorageReference = storageRef.child(arg.remoteFullPath); | ||
let fIRStorageUploadTask = null; | ||
let metadata = null; | ||
if (arg.metadata) { | ||
@@ -93,4 +87,4 @@ metadata = FIRStorageMetadata.new(); | ||
if (arg.metadata.customMetadata) { | ||
var customMetadata = NSMutableDictionary.new(); | ||
for (var p in arg.metadata.customMetadata) { | ||
const customMetadata = NSMutableDictionary.new(); | ||
for (let p in arg.metadata.customMetadata) { | ||
customMetadata.setObjectForKey(arg.metadata.customMetadata[p], p); | ||
@@ -116,3 +110,3 @@ } | ||
if (fIRStorageUploadTask !== null) { | ||
fIRStorageUploadTask.observeStatusHandler(2, function (snapshot) { | ||
fIRStorageUploadTask.observeStatusHandler(2, snapshot => { | ||
if (!snapshot.error && typeof (arg.onProgress) === "function") { | ||
@@ -133,7 +127,6 @@ arg.onProgress({ | ||
} | ||
exports.uploadFile = uploadFile; | ||
function downloadFile(arg) { | ||
return new Promise(function (resolve, reject) { | ||
export function downloadFile(arg) { | ||
return new Promise((resolve, reject) => { | ||
try { | ||
var onCompletion = function (url, error) { | ||
const onCompletion = (url, error) => { | ||
if (error) { | ||
@@ -146,8 +139,8 @@ reject(error.localizedDescription); | ||
}; | ||
var storageRef = getStorageRef(reject, arg); | ||
const storageRef = getStorageRef(reject, arg); | ||
if (!storageRef) { | ||
return; | ||
} | ||
var fIRStorageReference = storageRef.child(arg.remoteFullPath); | ||
var localFilePath = void 0; | ||
const fIRStorageReference = storageRef.child(arg.remoteFullPath); | ||
let localFilePath; | ||
if (arg.localFile) { | ||
@@ -167,3 +160,3 @@ if (typeof (arg.localFile) !== "object") { | ||
} | ||
var localFileUrl = NSURL.fileURLWithPath(localFilePath); | ||
const localFileUrl = NSURL.fileURLWithPath(localFilePath); | ||
fIRStorageReference.writeToFileCompletion(localFileUrl, onCompletion); | ||
@@ -177,7 +170,6 @@ } | ||
} | ||
exports.downloadFile = downloadFile; | ||
function getDownloadUrl(arg) { | ||
return new Promise(function (resolve, reject) { | ||
export function getDownloadUrl(arg) { | ||
return new Promise((resolve, reject) => { | ||
try { | ||
var onCompletion = function (url, error) { | ||
const onCompletion = (url, error) => { | ||
if (error) { | ||
@@ -190,7 +182,7 @@ reject(error.localizedDescription); | ||
}; | ||
var storageRef = getStorageRef(reject, arg); | ||
const storageRef = getStorageRef(reject, arg); | ||
if (!storageRef) { | ||
return; | ||
} | ||
var fIRStorageReference = storageRef.child(arg.remoteFullPath); | ||
const fIRStorageReference = storageRef.child(arg.remoteFullPath); | ||
fIRStorageReference.downloadURLWithCompletion(onCompletion); | ||
@@ -204,7 +196,6 @@ } | ||
} | ||
exports.getDownloadUrl = getDownloadUrl; | ||
function deleteFile(arg) { | ||
return new Promise(function (resolve, reject) { | ||
export function deleteFile(arg) { | ||
return new Promise((resolve, reject) => { | ||
try { | ||
var onCompletion = function (error) { | ||
const onCompletion = error => { | ||
if (error) { | ||
@@ -217,7 +208,7 @@ reject(error.localizedDescription); | ||
}; | ||
var storageRef = getStorageRef(reject, arg); | ||
const storageRef = getStorageRef(reject, arg); | ||
if (!storageRef) { | ||
return; | ||
} | ||
var fIRStorageFileRef = storageRef.child(arg.remoteFullPath); | ||
const fIRStorageFileRef = storageRef.child(arg.remoteFullPath); | ||
fIRStorageFileRef.deleteWithCompletion(onCompletion); | ||
@@ -231,12 +222,11 @@ } | ||
} | ||
exports.deleteFile = deleteFile; | ||
function listAll(listOptions) { | ||
return new Promise(function (resolve, reject) { | ||
export function listAll(listOptions) { | ||
return new Promise((resolve, reject) => { | ||
try { | ||
var storageRef = getStorageRef(reject, listOptions); | ||
const storageRef = getStorageRef(reject, listOptions); | ||
if (!storageRef) { | ||
return; | ||
} | ||
var fIRStorageReference = storageRef.child(listOptions.remoteFullPath); | ||
fIRStorageReference.listAllWithCompletion(function (result, error) { | ||
const fIRStorageReference = storageRef.child(listOptions.remoteFullPath); | ||
fIRStorageReference.listAllWithCompletion((result, error) => { | ||
if (error) { | ||
@@ -256,2 +246,1 @@ reject(error.localizedDescription); | ||
} | ||
exports.listAll = listAll; |
47
utils.js
@@ -1,11 +0,8 @@ | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.firebaseUtils = exports.Utils = void 0; | ||
var firebase_common_1 = require("./firebase-common"); | ||
var types_1 = require("@nativescript/core/utils/types"); | ||
var Utils = (function () { | ||
function Utils() { | ||
this.invokeOnRunLoop = (function () { | ||
var runloop = CFRunLoopGetMain(); | ||
return function (func) { | ||
import { firebase } from "./firebase-common"; | ||
import { getClass } from "@nativescript/core/utils/types"; | ||
export class Utils { | ||
constructor() { | ||
this.invokeOnRunLoop = (() => { | ||
const runloop = CFRunLoopGetMain(); | ||
return func => { | ||
CFRunLoopPerformBlock(runloop, kCFRunLoopDefaultMode, func); | ||
@@ -16,7 +13,7 @@ CFRunLoopWakeUp(runloop); | ||
} | ||
Utils.prototype.toJsObject = function (objCObj) { | ||
toJsObject(objCObj) { | ||
if (objCObj === null || typeof objCObj !== "object") { | ||
return objCObj; | ||
} | ||
var node, key, i, l, oKeyArr = objCObj.allKeys; | ||
let node, key, i, l, oKeyArr = objCObj.allKeys; | ||
if (oKeyArr === undefined && objCObj.count !== undefined) { | ||
@@ -33,3 +30,3 @@ node = []; | ||
key = oKeyArr.objectAtIndex(i); | ||
var val = objCObj.valueForKey(key); | ||
const val = objCObj.valueForKey(key); | ||
if (val === null) { | ||
@@ -46,5 +43,5 @@ node[key] = null; | ||
return node; | ||
}; | ||
Utils.prototype.getValueForClass = function (val) { | ||
switch (types_1.getClass(val)) { | ||
} | ||
getValueForClass(val) { | ||
switch (getClass(val)) { | ||
case 'NSArray': | ||
@@ -68,15 +65,13 @@ case 'NSMutableArray': | ||
case 'FIRDocumentReference': | ||
var path = val.path; | ||
var lastSlashIndex = path.lastIndexOf("/"); | ||
return firebase_common_1.firebase.firestore._getDocumentReference(val, path.substring(0, lastSlashIndex), path.substring(lastSlashIndex + 1)); | ||
const path = val.path; | ||
const lastSlashIndex = path.lastIndexOf("/"); | ||
return firebase.firestore._getDocumentReference(val, path.substring(0, lastSlashIndex), path.substring(lastSlashIndex + 1)); | ||
case 'FIRGeoPoint': | ||
return firebase_common_1.firebase.firestore.GeoPoint(val.latitude, val.longitude); | ||
return firebase.firestore.GeoPoint(val.latitude, val.longitude); | ||
default: | ||
console.log("Please report this at https://github.com/EddyVerbruggen/nativescript-plugin-firebase/issues: iOS toJsObject is missing a converter for class '" + types_1.getClass(val) + "'. Casting to String as a fallback."); | ||
console.log("Please report this at https://github.com/EddyVerbruggen/nativescript-plugin-firebase/issues: iOS toJsObject is missing a converter for class '" + getClass(val) + "'. Casting to String as a fallback."); | ||
return String(val); | ||
} | ||
}; | ||
return Utils; | ||
}()); | ||
exports.Utils = Utils; | ||
exports.firebaseUtils = new Utils(); | ||
} | ||
} | ||
export const firebaseUtils = new Utils(); |
@@ -1,8 +0,5 @@ | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.Sha256 = exports.getNonce = void 0; | ||
var CHARSET = "0123456789ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvwxyz-._"; | ||
function getNonce(length) { | ||
var text = ""; | ||
for (var i = 0; i < length; i++) { | ||
const CHARSET = "0123456789ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvwxyz-._"; | ||
export function getNonce(length) { | ||
let text = ""; | ||
for (let i = 0; i < length; i++) { | ||
text += CHARSET.charAt(Math.floor(Math.random() * CHARSET.length)); | ||
@@ -12,18 +9,16 @@ } | ||
} | ||
exports.getNonce = getNonce; | ||
function Sha256(input) { | ||
var nsStr = NSString.stringWithString(input); | ||
var nsData = nsStr.dataUsingEncoding(NSUTF8StringEncoding); | ||
var hash = NSMutableData.dataWithLength(32); | ||
export function Sha256(input) { | ||
const nsStr = NSString.stringWithString(input); | ||
const nsData = nsStr.dataUsingEncoding(NSUTF8StringEncoding); | ||
const hash = NSMutableData.dataWithLength(32); | ||
CC_SHA256(nsData.bytes, nsData.length, hash.mutableBytes); | ||
var data = NSData.dataWithBytesLength(hash.mutableBytes, 32); | ||
const data = NSData.dataWithBytesLength(hash.mutableBytes, 32); | ||
return _Format(data); | ||
} | ||
exports.Sha256 = Sha256; | ||
function _Format(data) { | ||
var buffer = interop.bufferFromData(data); | ||
var view = new Uint8Array(buffer); | ||
var result = ""; | ||
for (var i = 0; i !== data.length; ++i) { | ||
var tmp = view[i].toString(16); | ||
const buffer = interop.bufferFromData(data); | ||
const view = new Uint8Array(buffer); | ||
let result = ""; | ||
for (let i = 0; i !== data.length; ++i) { | ||
let tmp = view[i].toString(16); | ||
if (tmp.length === 1) { | ||
@@ -30,0 +25,0 @@ result += "0"; |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
4002180
6
7
17379
+ Addedts-node@^9.0.0
+ Addedarg@4.1.3(transitive)
+ Addedbuffer-from@1.1.2(transitive)
+ Addedcreate-require@1.1.1(transitive)
+ Addeddiff@4.0.2(transitive)
+ Addedmake-error@1.3.6(transitive)
+ Addedsource-map@0.6.1(transitive)
+ Addedsource-map-support@0.5.21(transitive)
+ Addedts-node@9.1.1(transitive)
+ Addedtypescript@5.4.5(transitive)
+ Addedyn@3.1.1(transitive)