UNPKG

@nativescript/core

Version:

A JavaScript library providing an easy to use api for interacting with iOS and Android platform APIs.

89 lines 3.02 kB
import { isEmbedded, getEmbeddedView } from '../embedding'; import { setFragmentCallbacks } from '.'; const superProto = org.nativescript.widgets.FragmentBase.prototype; const FragmentClass = org.nativescript.widgets.FragmentBase.extend('com.tns.FragmentClass', { init() { }, onHiddenChanged(hidden) { this._callbacks.onHiddenChanged(this, hidden, superProto.onHiddenChanged); }, onCreateAnimator(transit, enter, nextAnim) { return this._callbacks.onCreateAnimator(this, transit, enter, nextAnim, superProto.onCreateAnimator); }, onStop() { this._callbacks.onStop(this, superProto.onStop); }, onPause() { this._callbacks.onPause(this, superProto.onPause); }, onResume() { this._callbacks.onResume(this, superProto.onResume); }, onCreate(savedInstanceState) { if (!this._callbacks) { setFragmentCallbacks(this); } this.setHasOptionsMenu(true); this._callbacks.onCreate(this, savedInstanceState, superProto.onCreate); }, onCreateView(inflater, container, savedInstanceState) { return this._callbacks.onCreateView(this, inflater, container, savedInstanceState, superProto.onCreateView); }, onSaveInstanceState(outState) { this._callbacks.onSaveInstanceState(this, outState, superProto.onSaveInstanceState); }, onDestroyView() { this._callbacks.onDestroyView(this, superProto.onDestroyView); }, onDestroy() { this._callbacks.onDestroy(this, superProto.onDestroy); this._callbacks = null; }, toString() { const callbacks = this._callbacks; if (callbacks) { return callbacks.toStringOverride(this, superProto.toString); } else { superProto.toString(); } }, }); export let fragmentClass; export function ensureFragmentClass() { if (fragmentClass) { return; } // this require will apply the FragmentClass implementation require('./fragment'); if (!fragmentClass) { throw new Error('Failed to initialize the extended androidx.fragment.app.Fragment class'); } } export function setFragmentClass(clazz) { if (fragmentClass) { throw new Error('Fragment class already initialized'); } if (isEmbedded()) { attachEmbeddableFragmentCallbacks(); } fragmentClass = clazz; } function attachEmbeddableFragmentCallbacks() { const Callbacks = com.tns.embedding.EmbeddableFragmentCallbacks.extend({ init() { // init must at least be defined }, onCreateView() { return getEmbeddedView().nativeViewProtected; }, onResume() { getEmbeddedView().callLoaded(); }, onPause() { getEmbeddedView().callUnloaded(); }, }); com.tns.embedding.CallbacksStore.setFragmentCallbacks(new Callbacks()); } setFragmentClass(FragmentClass); //# sourceMappingURL=fragment.android.js.map