chore: merge release in master (#8275)

* fix the crash

* chore: update MaterialComponents pod (#8176)

* chore: update MaterialComponents pod

* chore: remove copy of pod file in build script

* chore: cut the 6.3.0 release (#8174)

* hore: cut the 6.3.1 release

* fix: handle fake attach after FragMgr is destroyed (#8200)

* fix: check is disposed fragment is in the FragmentManager (#8201)

* release: cut the 6.3.2 release

Co-authored-by: hamidbsd <50081218+hamidbsd@users.noreply.github.com>
Co-authored-by: Vasil Trifonov <v.trifonov@gmail.com>
Co-authored-by: Dimitar Topuzov <dtopuzov@gmail.com>
This commit is contained in:
Alexander Vakrilov
2020-01-27 11:05:46 +02:00
committed by GitHub
parent 02763ecd2c
commit e57d5d9da1
8 changed files with 68 additions and 25 deletions

View File

@ -1,3 +1,43 @@
## [6.3.2](https://github.com/NativeScript/NativeScript/compare/6.3.1...6.3.2) (2019-12-20)
### Bug Fixes
* check is disposed fragment is in the FragmentManager ([#8201](https://github.com/NativeScript/NativeScript/issues/8201)) ([4b00376](https://github.com/NativeScript/NativeScript/commit/4b00376))
* handle fake attach after FragMgr is destroyed ([#8200](https://github.com/NativeScript/NativeScript/issues/8200)) ([d1858f8](https://github.com/NativeScript/NativeScript/commit/d1858f8))
## [6.3.1](https://github.com/NativeScript/NativeScript/compare/6.3.0...6.3.1) (2019-12-16)
### Bug Fixes
* null reference exception in view.android.onUnloaded ([#8153](https://github.com/NativeScript/NativeScript/issues/8153)) ([da639f2](https://github.com/NativeScript/NativeScript/commit/da639f2))
# [6.3.0](https://github.com/NativeScript/NativeScript/compare/6.2.2...6.3.0) (2019-12-06)
### Bug Fixes
* **android:** Fatal Exception: java.lang.OutOfMemoryError ([#8061](https://github.com/NativeScript/NativeScript/issues/8061)) ([8d382a6](https://github.com/NativeScript/NativeScript/commit/8d382a6b2e722e9298becdcfb3b43a41352a9136))
* **grid-layout:** value parser will now accept strings or numbers ([#8042](https://github.com/NativeScript/NativeScript/issues/8042)) ([3199a39](https://github.com/NativeScript/NativeScript/commit/3199a392b45635606e06119845099965246395c3))
* **iOS:** Opening alert/confirm on top most of modal dialogs ([#7982](https://github.com/NativeScript/NativeScript/issues/7982)) ([60ac4e7](https://github.com/NativeScript/NativeScript/commit/60ac4e7a05c9e627eb9fc7a1bdf004c7fca99817)), closes [#6939](https://github.com/NativeScript/NativeScript/issues/6939)
* nested css-calc and css-variables with fallback ([#7987](https://github.com/NativeScript/NativeScript/issues/7987)) ([fc2a233](https://github.com/NativeScript/NativeScript/commit/fc2a233e9598def50969247c1516c32260b7e283))
### Features
* **css:** Added optional css-tree parser ([#8076](https://github.com/NativeScript/NativeScript/issues/8076)) ([49a7607](https://github.com/NativeScript/NativeScript/commit/49a7607f4e0f3d359820b5ae731f806966de2921))
* **dialogs:** Setting the size of popup dialog thru dialog options ([#8041](https://github.com/NativeScript/NativeScript/issues/8041)) ([cd5703a](https://github.com/NativeScript/NativeScript/commit/cd5703a6b79598031ef334a9cf3132e688422aba))
* support requestAnimationFrame ([#8112](https://github.com/NativeScript/NativeScript/issues/8112)) ([2aa6e9b](https://github.com/NativeScript/NativeScript/commit/2aa6e9bf922286f9ffd747f901dbc922cd9446b9))
* System css classes for modals ([#8155](https://github.com/NativeScript/NativeScript/issues/8155)) ([7b78f3b](https://github.com/NativeScript/NativeScript/commit/7b78f3b0c640d9d43026744b919a03996191f788))
* **modal-view-ios:** handle iOS 13 dismiss modal gesture ([#8024](https://github.com/NativeScript/NativeScript/issues/8024)) ([c5df258](https://github.com/NativeScript/NativeScript/commit/c5df2580439c24c57fb364cba91050a00e391c35))
## [6.2.2](https://github.com/NativeScript/NativeScript/compare/6.2.1...6.2.2) (2019-11-25) ## [6.2.2](https://github.com/NativeScript/NativeScript/compare/6.2.1...6.2.2) (2019-11-25)

View File

@ -31,10 +31,6 @@ NATIVESCRIPT_CORE_ARGS=${NATIVESCRIPT_CORE_ARGS:-$DEFAULT_NATIVESCRIPT_CORE_ARGS
echo "Copying $PACKAGE_SOURCE $DIST/$PACKAGE..." echo "Copying $PACKAGE_SOURCE $DIST/$PACKAGE..."
npx ncp "$PACKAGE_SOURCE" "$DIST/$PACKAGE" npx ncp "$PACKAGE_SOURCE" "$DIST/$PACKAGE"
echo "TODO(REMOVE THIS HACK): Copying platfroms/ios/Podfile"
mkdir -p "$DIST/$PACKAGE/platforms/ios"
npx ncp "nativescript-core/platforms/ios/Podfile" "$DIST/$PACKAGE/platforms/ios/Podfile"
echo "Copying README and LICENSE to $DIST/$PACKAGE" echo "Copying README and LICENSE to $DIST/$PACKAGE"
npx ncp LICENSE "$DIST"/"$PACKAGE"/LICENSE npx ncp LICENSE "$DIST"/"$PACKAGE"/LICENSE

View File

@ -13,9 +13,9 @@
"license": "SEE LICENSE IN <your-license-filename>", "license": "SEE LICENSE IN <your-license-filename>",
"repository": "<fill-your-repository-here>", "repository": "<fill-your-repository-here>",
"dependencies": { "dependencies": {
"@nativescript/core": "file:../../dist/nativescript-core-6.2.0.tgz", "@nativescript/core": "file:../../dist/nativescript-core-6.3.0.tgz",
"nativescript-theme-core": "~1.0.6", "nativescript-theme-core": "~1.0.6",
"tns-core-modules": "file:../../dist/tns-core-modules-6.2.0.tgz" "tns-core-modules": "file:../../dist/tns-core-modules-6.3.0.tgz"
}, },
"devDependencies": { "devDependencies": {
"nativescript-dev-webpack": "~1.2.0", "nativescript-dev-webpack": "~1.2.0",

View File

@ -1,4 +1,4 @@
platform :ios, '9.0' platform :ios, '9.0'
use_frameworks! use_frameworks!
pod 'MaterialComponents/Tabs', '~> 92.3' pod 'MaterialComponents/Tabs', '~> 94.5'

View File

@ -385,14 +385,14 @@ export class BottomNavigation extends TabNavigationBase {
_onAttachedToWindow(): void { _onAttachedToWindow(): void {
super._onAttachedToWindow(); super._onAttachedToWindow();
this._attachedToWindow = true;
// _onAttachedToWindow called from OS again after it was detach // _onAttachedToWindow called from OS again after it was detach
// TODO: Consider testing and removing it when update to androidx.fragment:1.2.0 // TODO: Consider testing and removing it when update to androidx.fragment:1.2.0
if (this._manager && this._manager.isDestroyed()) { if (this._manager && this._manager.isDestroyed()) {
return; return;
} }
this._attachedToWindow = true;
this.changeTab(this.selectedIndex); this.changeTab(this.selectedIndex);
} }

View File

@ -156,6 +156,8 @@ function initializeDialogFragment() {
const ownerId = this.getArguments().getInt(DOMID); const ownerId = this.getArguments().getInt(DOMID);
const options = getModalOptions(ownerId); const options = getModalOptions(ownerId);
this.owner = options.owner; this.owner = options.owner;
// Set owner._dialogFragment to this in case the DialogFragment was recreated after app suspend
this.owner._dialogFragment = this;
this._fullscreen = options.fullscreen; this._fullscreen = options.fullscreen;
this._animated = options.animated; this._animated = options.animated;
this._cancelable = options.cancelable; this._cancelable = options.cancelable;
@ -381,11 +383,13 @@ export class View extends ViewCommon {
@profile @profile
public onUnloaded() { public onUnloaded() {
if (this.touchListenerIsSet) { if (this.touchListenerIsSet) {
this.nativeViewProtected.setOnTouchListener(null);
this.touchListenerIsSet = false; this.touchListenerIsSet = false;
this.nativeViewProtected.setClickable(this._isClickable); if (this.nativeViewProtected) {
this.nativeViewProtected.setOnTouchListener(null);
this.nativeViewProtected.setClickable(this._isClickable);
}
} }
this._manager = null; this._manager = null;
this._rootManager = null; this._rootManager = null;
super.onUnloaded(); super.onUnloaded();

View File

@ -150,14 +150,14 @@ export class Frame extends FrameBase {
_onAttachedToWindow(): void { _onAttachedToWindow(): void {
super._onAttachedToWindow(); super._onAttachedToWindow();
this._attachedToWindow = true;
// _onAttachedToWindow called from OS again after it was detach // _onAttachedToWindow called from OS again after it was detach
// TODO: Consider testing and removing it when update to androidx.fragment:1.2.0 // TODO: Consider testing and removing it when update to androidx.fragment:1.2.0
if (this._manager && this._manager.isDestroyed()) { if (this._manager && this._manager.isDestroyed()) {
return; return;
} }
this._attachedToWindow = true;
this._processNextNavigationEntry(); this._processNextNavigationEntry();
} }
@ -264,13 +264,13 @@ export class Frame extends FrameBase {
!this._currentEntry.fragment.isAdded()) { !this._currentEntry.fragment.isAdded()) {
return; return;
} }
const fragment: androidx.fragment.app.Fragment = this._currentEntry.fragment;
const fragmentManager: androidx.fragment.app.FragmentManager = fragment.getFragmentManager();
const manager: androidx.fragment.app.FragmentManager = this._getFragmentManager(); const transaction = fragmentManager.beginTransaction();
const transaction = manager.beginTransaction();
const fragment = this._currentEntry.fragment;
const fragmentExitTransition = fragment.getExitTransition(); const fragmentExitTransition = fragment.getExitTransition();
// Reset animation to its initial state to prevent mirrorered effect when restore current fragment transitions // Reset animation to its initial state to prevent mirrored effect when restore current fragment transitions
if (fragmentExitTransition && fragmentExitTransition instanceof org.nativescript.widgets.CustomTransition) { if (fragmentExitTransition && fragmentExitTransition instanceof org.nativescript.widgets.CustomTransition) {
fragmentExitTransition.setResetOnTransitionEnd(true); fragmentExitTransition.setResetOnTransitionEnd(true);
} }
@ -637,7 +637,7 @@ function clearEntry(entry: BackstackEntry): void {
entry.recreated = false; entry.recreated = false;
entry.fragment = null; entry.fragment = null;
const page = entry.resolvedPage; const page = entry.resolvedPage;
if (page._context) { if (page && page._context) {
entry.resolvedPage._tearDownUI(true); entry.resolvedPage._tearDownUI(true);
} }
} }
@ -1032,6 +1032,12 @@ class FragmentCallbacksImplementation implements AndroidFragmentCallbacks {
} }
private loadBitmapFromView(view: android.view.View): android.graphics.Bitmap { private loadBitmapFromView(view: android.view.View): android.graphics.Bitmap {
// Don't try to creat bitmaps with no dimensions as this causes a crash
// This might happen when showing and closing dialogs fast.
if (!(view && view.getWidth() > 0 && view.getHeight() > 0)) {
return undefined;
}
// Another way to get view bitmap. Test performance vs setDrawingCacheEnabled // Another way to get view bitmap. Test performance vs setDrawingCacheEnabled
// const width = view.getWidth(); // const width = view.getWidth();
// const height = view.getHeight(); // const height = view.getHeight();
@ -1041,7 +1047,8 @@ class FragmentCallbacksImplementation implements AndroidFragmentCallbacks {
// view.draw(canvas); // view.draw(canvas);
view.setDrawingCacheEnabled(true); view.setDrawingCacheEnabled(true);
const bitmap = android.graphics.Bitmap.createBitmap(view.getDrawingCache()); const drawCache = view.getDrawingCache();
const bitmap = android.graphics.Bitmap.createBitmap(drawCache);
view.setDrawingCacheEnabled(false); view.setDrawingCacheEnabled(false);
return bitmap; return bitmap;

View File

@ -6,8 +6,6 @@ import {
export { ios }; export { ios };
export * from "./utils-common"; export * from "./utils-common";
let mainScreenScale;
export function openFile(filePath: string): boolean { export function openFile(filePath: string): boolean {
try { try {
const appPath = ios.getCurrentAppPath(); const appPath = ios.getCurrentAppPath();
@ -47,5 +45,3 @@ export function openUrl(location: string): boolean {
return false; return false;
} }
mainScreenScale = UIScreen.mainScreen.scale;