mirror of
https://github.com/NativeScript/NativeScript.git
synced 2025-11-05 13:26:48 +08:00
* Added tests for native view recycling Disabled android native view recycling Move toString from view-common to view-base Fix crash on application restore and navigation back on API26 Added setAsRootView method Added missing logo into perf-tests/recycling app * additional fix for image-source-tests. ios is case sensitive. * Add @private to some internal properties Fix where padding is not respected when background is reset.
102 lines
3.7 KiB
TypeScript
102 lines
3.7 KiB
TypeScript
import { StackLayout } from "tns-core-modules/ui/layouts/stack-layout";
|
|
import { TextView } from "tns-core-modules/ui/text-view";
|
|
import { Button } from "tns-core-modules/ui/button";
|
|
import * as platform from "tns-core-modules/platform";
|
|
import * as application from "tns-core-modules/application";
|
|
|
|
import * as tests from "./tests";
|
|
|
|
let runner;
|
|
|
|
function getStack(stack: StackLayout): StackLayout {
|
|
let p = new StackLayout();
|
|
stack.removeChildren();
|
|
stack.addChild(p);
|
|
return p;
|
|
}
|
|
|
|
export function navigatingTo(args) {
|
|
// Request permission to write test-results.xml file for API >= 23
|
|
if (platform.isAndroid && parseInt(platform.device.sdkVersion) >= 23) {
|
|
let handler = (args: application.AndroidActivityRequestPermissionsEventData) => {
|
|
application.android.off(application.AndroidApplication.activityRequestPermissionsEvent, handler);
|
|
if (args.requestCode === 1234 && args.grantResults.length > 0 && args.grantResults[0] === android.content.pm.PackageManager.PERMISSION_GRANTED) {
|
|
console.log("Permission for write to external storage GRANTED!")
|
|
} else {
|
|
console.log("Permission for write to external storage not granted!");
|
|
}
|
|
};
|
|
|
|
application.android.on(application.AndroidApplication.activityRequestPermissionsEvent, handler);
|
|
|
|
if ((<any>android.support.v4.content.ContextCompat).checkSelfPermission(application.android.currentContext, (<any>android).Manifest.permission.WRITE_EXTERNAL_STORAGE) !== android.content.pm.PackageManager.PERMISSION_GRANTED) {
|
|
(<any>android.support.v4.app.ActivityCompat).requestPermissions(application.android.currentContext, [(<any>android).Manifest.permission.WRITE_EXTERNAL_STORAGE], 1234);
|
|
}
|
|
} else {
|
|
console.log("Permission for write to external storage GRANTED!")
|
|
}
|
|
}
|
|
|
|
export function onNavigatingFrom() {
|
|
clearInterval(runner);
|
|
}
|
|
|
|
export function onTap(args) {
|
|
let btn = <Button>args.object;
|
|
const p = btn.page.getViewById<StackLayout>("placeholder");
|
|
btn.text = "Start tests...";
|
|
|
|
let result = btn.page.getViewById<TextView>("result");
|
|
|
|
result.text = "";
|
|
|
|
function track(line: string) {
|
|
console.log(line);
|
|
result.fontSize = 10;
|
|
result.text += line + "\n";
|
|
}
|
|
|
|
let text = '';//"Count";
|
|
// c.forEach(e => {
|
|
// text += `\t${e}`;
|
|
// });
|
|
track(text);
|
|
|
|
let tasks = [
|
|
() => track(tests.testSetup(p)),
|
|
() => track(tests.testFlexboxLayout(p)),
|
|
() => track(tests.testDockLayout(p)),
|
|
() => track(tests.testGridLayout(p)),
|
|
() => track(tests.testStackLayout(p)),
|
|
() => track(tests.testWrapLayout(p)),
|
|
() => track(tests.testAbsoluteLayout(p)),
|
|
() => track(tests.testButton(p)),
|
|
() => track(tests.testActionBar(p)),
|
|
() => track(tests.testActivityIndicator(p)),
|
|
() => track(tests.testBorder(p)),
|
|
() => track(tests.testContentView(p)),
|
|
() => track(tests.testDatePicker(p)),
|
|
() => track(tests.testHtmlView(p)),
|
|
() => track(tests.testImage(p)),
|
|
() => track(tests.testLabel(p)),
|
|
() => track(tests.testListPicker(p)),
|
|
() => track(tests.testListView(p)),
|
|
() => track(tests.testPage(p)),
|
|
() => track(tests.testProgress(p)),
|
|
() => track(tests.testRepeater(p)),
|
|
() => track(tests.testSwitch(p)),
|
|
() => track(tests.testTextField(p)),
|
|
() => track(tests.testTextView(p)),
|
|
() => track("Complete!")
|
|
];
|
|
let i = 0;
|
|
runner = setInterval(nextTask, 1);
|
|
function nextTask() {
|
|
if (i < tasks.length) {
|
|
tasks[i]();
|
|
i++;
|
|
} else {
|
|
clearInterval(runner);
|
|
}
|
|
}
|
|
} |