fix-next(frame): remove current entry fragment on reset root view (#5533)

* chore(e2e): add @types as devDependencies

Update `tsconfig.json` file.

* fix-next(frame): remove current entry fragment on reset root view

* refactor(e2e): undo skip tab root tests

* refactor(frame): extract disposeCurrentFragment() method

Extract the common logic from _onRootViewReset() and onUnloaded() methods to avoid code duplication.
This commit is contained in:
Vasil Chimev
2018-03-14 19:56:15 +02:00
committed by GitHub
parent cf8dcfa40c
commit e43c7546bd
6 changed files with 19 additions and 9 deletions

View File

@ -6,7 +6,7 @@ import { modalFrameBackground,
testNestedModalPageBackground
} from "../shared.e2e-spec"
describe.skip("tab root modal frame background scenarios", () => {
describe("tab root modal frame background scenarios", () => {
let driver: AppiumDriver;
let screen: Screen;

View File

@ -6,7 +6,7 @@ import { modalPageBackground,
testNestedModalPageBackground
} from "../shared.e2e-spec"
describe.skip("tab root modal page background scenarios", () => {
describe("tab root modal page background scenarios", () => {
let driver: AppiumDriver;
let screen: Screen;

View File

@ -8,7 +8,7 @@ import { modalFrameBackground,
testSecondItemBackground
} from "../shared.e2e-spec"
describe.skip("tab root modal tab view background scenarios", () => {
describe("tab root modal tab view background scenarios", () => {
let driver: AppiumDriver;
let screen: Screen;

View File

@ -35,7 +35,10 @@
"uglifyjs-webpack-plugin": "~1.1.6",
"webpack": "~3.10.0",
"webpack-bundle-analyzer": "^2.9.1",
"webpack-sources": "~1.1.0"
"webpack-sources": "~1.1.0",
"@types/chai": "^4.0.2",
"@types/mocha": "^2.2.41",
"@types/node": "^7.0.5"
},
"scripts": {
"e2e": "tsc -p e2e && mocha --opts ./e2e/config/mocha.opts",

View File

@ -24,6 +24,6 @@
"exclude": [
"node_modules",
"platforms",
"e2e"
"e2e"
]
}

View File

@ -176,16 +176,23 @@ export class Frame extends FrameBase {
}
}
_onRootViewReset(): void {
this.disposeCurrentFragment();
super._onRootViewReset();
}
onUnloaded() {
this.disposeCurrentFragment();
super.onUnloaded();
}
private disposeCurrentFragment(){
if (this._currentEntry && this._currentEntry.fragment) {
const manager: android.app.FragmentManager = this._getFragmentManager();
const transaction = manager.beginTransaction();
transaction.remove(this._currentEntry.fragment);
transaction.commitAllowingStateLoss();
}
super.onUnloaded();
}
private createFragment(backstackEntry: BackstackEntry, fragmentTag: string): android.app.Fragment {