Add RequestPermission to become an Application activity callback like BackPress. (Patch 2/2)

This commit is contained in:
Nathanael Anderson
2016-03-16 21:45:31 -06:00
parent 12a82eb5bb
commit 6e6247335e
3 changed files with 39 additions and 0 deletions

View File

@ -162,6 +162,7 @@ export class AndroidApplication extends observable.Observable implements definit
public static saveActivityStateEvent = "saveActivityState"; public static saveActivityStateEvent = "saveActivityState";
public static activityResultEvent = "activityResult"; public static activityResultEvent = "activityResult";
public static activityBackPressedEvent = "activityBackPressed"; public static activityBackPressedEvent = "activityBackPressed";
public static activityRequestPermissionsEvent = "activityRequestPermissions";
public paused: boolean; public paused: boolean;
public nativeApp: android.app.Application; public nativeApp: android.app.Application;

View File

@ -278,6 +278,26 @@ declare module "application" {
bundle: any /* android.os.Bundle */; bundle: any /* android.os.Bundle */;
} }
/**
* Data for the Android activity onRequestPermissions callback
*/
export interface AndroidActivityRequestPermissionsEventData extends AndroidActivityEventData {
/**
* The request code.
*/
requestCode: number,
/**
* The Permissions
*/
permissions: Array<String>,
/**
* The Granted.
*/
grantResults: Array<Number>
}
/** /**
* Data for the Android activity result event. * Data for the Android activity result event.
*/ */
@ -440,6 +460,11 @@ declare module "application" {
*/ */
on(event: "activityBackPressed", callback: (args: AndroidActivityBackPressedEventData) => void, thisArg?: any); on(event: "activityBackPressed", callback: (args: AndroidActivityBackPressedEventData) => void, thisArg?: any);
/**
* This event is raised on the back button is pressed in an android application.
*/
on(event: "activityRequestPermissions", callback: (args: AndroidActivityBackPressedEventData) => void, thisArg?: any);
/** /**
* String value used when hooking to activityCreated event. * String value used when hooking to activityCreated event.
*/ */

View File

@ -803,6 +803,19 @@ class NativeScriptActivity extends android.app.Activity {
} }
} }
public onRequestPermissionsResult (requestCode: number, permissions: Array<String>, grantResults: Array<number>): void {
trace.write("NativeScriptActivity.onRequestPermissionsResult;", trace.categories.NativeLifecycle);
application.android.notify(<application.AndroidActivityRequestPermissionsEventData>{
eventName: "activityRequestPermissions",
object: application.android,
activity: this,
requestCode: requestCode,
permissions: permissions,
grantResults: grantResults
});
}
protected onActivityResult(requestCode: number, resultCode: number, data: android.content.Intent): void { protected onActivityResult(requestCode: number, resultCode: number, data: android.content.Intent): void {
super.onActivityResult(requestCode, resultCode, data); super.onActivityResult(requestCode, resultCode, data);
trace.write(`NativeScriptActivity.onActivityResult(${requestCode}, ${resultCode}, ${data})`, trace.categories.NativeLifecycle); trace.write(`NativeScriptActivity.onActivityResult(${requestCode}, ${resultCode}, ${data})`, trace.categories.NativeLifecycle);