Skip to content

Commit

Permalink
feat: support external push provider
Browse files Browse the repository at this point in the history
closes #7
  • Loading branch information
triniwiz committed Jul 19, 2022
1 parent c746104 commit a53d5a9
Show file tree
Hide file tree
Showing 107 changed files with 2,835 additions and 533 deletions.
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
- [@nativescript/firebase-in-app-messaging](packages/firebase-in-app-messaging/README.md)
- [@nativescript/firebase-installations](packages/firebase-installations/README.md)
- [@nativescript/firebase-messaging](packages/firebase-messaging/README.md)
- [@nativescript/firebase-messaging-core](packages/firebase-messaging-core/README.md)
- [@nativescript/firebase-performance](packages/firebase-performance/README.md)
- [@nativescript/firebase-remote-config](packages/firebase-remote-config/README.md)
- [@nativescript/firebase-storage](packages/firebase-storage/README.md)
Expand Down
3 changes: 2 additions & 1 deletion apps/demo-angular/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,8 @@
"@nativescript/firebase-dynamic-links": "file:../../dist/packages/firebase-dynamic-links",
"@nativescript/firebase-messaging": "file:../../dist/packages/firebase-messaging",
"@nativescript/firebase-functions": "file:../../dist/packages/firebase-functions",
"@nativescript/firebase-app-check-debug": "file:../../dist/packages/firebase-app-check-debug"
"@nativescript/firebase-app-check-debug": "file:../../dist/packages/firebase-app-check-debug",
"@nativescript/firebase-messaging-core": "file:../../dist/packages/firebase-messaging-core"
},
"devDependencies": {
"@nativescript/android": "~8.2.0",
Expand Down
39 changes: 20 additions & 19 deletions apps/demo-angular/src/app-routing.module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,25 +5,26 @@ import { NativeScriptRouterModule } from '@nativescript/angular';
import { HomeComponent } from './home.component';

const routes: Routes = [
{ path: '', redirectTo: '/home', pathMatch: 'full' },
{ path: 'home', component: HomeComponent },
{ path: 'firebase-admob', loadChildren: () => import('./plugin-demos/firebase-admob.module').then(m => m.FirebaseAdmobModule) },
{ path: 'firebase-analytics', loadChildren: () => import('./plugin-demos/firebase-analytics.module').then(m => m.FirebaseAnalyticsModule) },
{ path: 'firebase-app-check', loadChildren: () => import('./plugin-demos/firebase-app-check.module').then(m => m.FirebaseAppCheckModule) },
{ path: 'firebase-app-check-debug', loadChildren: () => import('./plugin-demos/firebase-app-check-debug.module').then(m => m.FirebaseAppCheckDebugModule) },
{ path: 'firebase-auth', loadChildren: () => import('./plugin-demos/firebase-auth.module').then(m => m.FirebaseAuthModule) },
{ path: 'firebase-core', loadChildren: () => import('./plugin-demos/firebase-core.module').then(m => m.FirebaseCoreModule) },
{ path: 'firebase-crashlytics', loadChildren: () => import('./plugin-demos/firebase-crashlytics.module').then(m => m.FirebaseCrashlyticsModule) },
{ path: 'firebase-database', loadChildren: () => import('./plugin-demos/firebase-database.module').then(m => m.FirebaseDatabaseModule) },
{ path: 'firebase-dynamic-links', loadChildren: () => import('./plugin-demos/firebase-dynamic-links.module').then(m => m.FirebaseDynamicLinksModule) },
{ path: 'firebase-firestore', loadChildren: () => import('./plugin-demos/firebase-firestore.module').then(m => m.FirebaseFirestoreModule) },
{ path: 'firebase-functions', loadChildren: () => import('./plugin-demos/firebase-functions.module').then(m => m.FirebaseFunctionsModule) },
{ path: 'firebase-in-app-messaging', loadChildren: () => import('./plugin-demos/firebase-in-app-messaging.module').then(m => m.FirebaseInAppMessagingModule) },
{ path: 'firebase-installations', loadChildren: () => import('./plugin-demos/firebase-installations.module').then(m => m.FirebaseInstallationsModule) },
{ path: 'firebase-messaging', loadChildren: () => import('./plugin-demos/firebase-messaging.module').then(m => m.FirebaseMessagingModule) },
{ path: 'firebase-performance', loadChildren: () => import('./plugin-demos/firebase-performance.module').then(m => m.FirebasePerformanceModule) },
{ path: 'firebase-remote-config', loadChildren: () => import('./plugin-demos/firebase-remote-config.module').then(m => m.FirebaseRemoteConfigModule) },
{ path: 'firebase-storage', loadChildren: () => import('./plugin-demos/firebase-storage.module').then(m => m.FirebaseStorageModule) }
{ path: '', redirectTo: '/home', pathMatch: 'full' },
{ path: 'home', component: HomeComponent },
{ path: 'firebase-admob', loadChildren: () => import('./plugin-demos/firebase-admob.module').then((m) => m.FirebaseAdmobModule) },
{ path: 'firebase-analytics', loadChildren: () => import('./plugin-demos/firebase-analytics.module').then((m) => m.FirebaseAnalyticsModule) },
{ path: 'firebase-app-check', loadChildren: () => import('./plugin-demos/firebase-app-check.module').then((m) => m.FirebaseAppCheckModule) },
{ path: 'firebase-app-check-debug', loadChildren: () => import('./plugin-demos/firebase-app-check-debug.module').then((m) => m.FirebaseAppCheckDebugModule) },
{ path: 'firebase-auth', loadChildren: () => import('./plugin-demos/firebase-auth.module').then((m) => m.FirebaseAuthModule) },
{ path: 'firebase-core', loadChildren: () => import('./plugin-demos/firebase-core.module').then((m) => m.FirebaseCoreModule) },
{ path: 'firebase-crashlytics', loadChildren: () => import('./plugin-demos/firebase-crashlytics.module').then((m) => m.FirebaseCrashlyticsModule) },
{ path: 'firebase-database', loadChildren: () => import('./plugin-demos/firebase-database.module').then((m) => m.FirebaseDatabaseModule) },
{ path: 'firebase-dynamic-links', loadChildren: () => import('./plugin-demos/firebase-dynamic-links.module').then((m) => m.FirebaseDynamicLinksModule) },
{ path: 'firebase-firestore', loadChildren: () => import('./plugin-demos/firebase-firestore.module').then((m) => m.FirebaseFirestoreModule) },
{ path: 'firebase-functions', loadChildren: () => import('./plugin-demos/firebase-functions.module').then((m) => m.FirebaseFunctionsModule) },
{ path: 'firebase-in-app-messaging', loadChildren: () => import('./plugin-demos/firebase-in-app-messaging.module').then((m) => m.FirebaseInAppMessagingModule) },
{ path: 'firebase-installations', loadChildren: () => import('./plugin-demos/firebase-installations.module').then((m) => m.FirebaseInstallationsModule) },
{ path: 'firebase-messaging', loadChildren: () => import('./plugin-demos/firebase-messaging.module').then((m) => m.FirebaseMessagingModule) },
{ path: 'firebase-messaging-core', loadChildren: () => import('./plugin-demos/firebase-messaging-core.module').then((m) => m.FirebaseMessagingCoreModule) },
{ path: 'firebase-performance', loadChildren: () => import('./plugin-demos/firebase-performance.module').then((m) => m.FirebasePerformanceModule) },
{ path: 'firebase-remote-config', loadChildren: () => import('./plugin-demos/firebase-remote-config.module').then((m) => m.FirebaseRemoteConfigModule) },
{ path: 'firebase-storage', loadChildren: () => import('./plugin-demos/firebase-storage.module').then((m) => m.FirebaseStorageModule) },
];

@NgModule({
Expand Down
109 changes: 56 additions & 53 deletions apps/demo-angular/src/home.component.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,56 +6,59 @@ import { Component } from '@angular/core';
})
export class HomeComponent {
demos = [
{
name: 'firebase-admob'
},
{
name: 'firebase-analytics'
},
{
name: 'firebase-app-check'
},
{
name: 'firebase-app-check-debug'
},
{
name: 'firebase-auth'
},
{
name: 'firebase-core'
},
{
name: 'firebase-crashlytics'
},
{
name: 'firebase-database'
},
{
name: 'firebase-dynamic-links'
},
{
name: 'firebase-firestore'
},
{
name: 'firebase-functions'
},
{
name: 'firebase-in-app-messaging'
},
{
name: 'firebase-installations'
},
{
name: 'firebase-messaging'
},
{
name: 'firebase-performance'
},
{
name: 'firebase-remote-config'
},
{
name: 'firebase-storage'
}
];
}
{
name: 'firebase-admob',
},
{
name: 'firebase-analytics',
},
{
name: 'firebase-app-check',
},
{
name: 'firebase-app-check-debug',
},
{
name: 'firebase-auth',
},
{
name: 'firebase-core',
},
{
name: 'firebase-crashlytics',
},
{
name: 'firebase-database',
},
{
name: 'firebase-dynamic-links',
},
{
name: 'firebase-firestore',
},
{
name: 'firebase-functions',
},
{
name: 'firebase-in-app-messaging',
},
{
name: 'firebase-installations',
},
{
name: 'firebase-messaging',
},
{
name: 'firebase-messaging-core',
},
{
name: 'firebase-performance',
},
{
name: 'firebase-remote-config',
},
{
name: 'firebase-storage',
},
];
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
<ActionBar title="firebase-messaging-core" class="action-bar"> </ActionBar>
<StackLayout class="p-20">
<ScrollView class="h-full">
<StackLayout>
<Button text="Test firebase-messaging-core" (tap)="demoShared.testIt()" class="btn btn-primary"></Button>
</StackLayout>
</ScrollView>
</StackLayout>
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
import { Component, NgZone } from '@angular/core';
import { DemoSharedFirebaseMessagingCore } from '@demo/shared';
import {} from '@nativescript/firebase-messaging-core';

@Component({
selector: 'demo-firebase-messaging-core',
templateUrl: 'firebase-messaging-core.component.html',
})
export class FirebaseMessagingCoreComponent {
demoShared: DemoSharedFirebaseMessagingCore;

constructor(private _ngZone: NgZone) {}

ngOnInit() {
this.demoShared = new DemoSharedFirebaseMessagingCore();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
import { NgModule, NO_ERRORS_SCHEMA } from '@angular/core';
import { NativeScriptCommonModule, NativeScriptRouterModule } from '@nativescript/angular';
import { FirebaseMessagingCoreComponent } from './firebase-messaging-core.component';

@NgModule({
imports: [NativeScriptCommonModule, NativeScriptRouterModule.forChild([{ path: '', component: FirebaseMessagingCoreComponent }])],
declarations: [FirebaseMessagingCoreComponent],
schemas: [NO_ERRORS_SCHEMA],
})
export class FirebaseMessagingCoreModule {}
34 changes: 34 additions & 0 deletions apps/demo-vue/app/plugin-demos/firebase-messaging-core.vue
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
<template>
<Page>
<ActionBar>
<Label text="firebase-messaging-core"/>
</ActionBar>

<GridLayout>
<Button class="info" :text="message"/>
</GridLayout>
</Page>
</template>

<script lang="ts">
import Vue from "nativescript-vue";
import { DemoSharedFirebaseMessagingCore } from '@demo/shared';
import { } from '@nativescript/firebase-messaging-core';
export default Vue.extend({
computed: {
message() {
return "Test firebase-messaging-core";
}
}
});
</script>

<style scoped lang="scss">
.info {
font-size: 20;
horizontal-align: center;
vertical-align: center;
}
</style>
3 changes: 2 additions & 1 deletion apps/demo-vue/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,8 @@
"@nativescript/firebase-performance": "file:../../packages/firebase-performance",
"@nativescript/firebase-remote-config": "file:../../packages/firebase-remote-config",
"@nativescript/firebase-storage": "file:../../packages/firebase-storage",
"@nativescript/firebase-app-check-debug": "file:../../packages/firebase-app-check-debug"
"@nativescript/firebase-app-check-debug": "file:../../packages/firebase-app-check-debug",
"@nativescript/firebase-messaging-core": "file:../../packages/firebase-messaging-core"
},
"devDependencies": {
"@nativescript/android": "~8.2.0",
Expand Down
3 changes: 2 additions & 1 deletion apps/demo/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,8 @@
"@nativescript/firebase-remote-config": "file:../../packages/firebase-remote-config",
"@nativescript/firebase-storage": "file:../../packages/firebase-storage",
"@nativescript/google-signin": "^1.0.0-alpha.9",
"@nativescript/firebase-app-check-debug": "file:../../packages/firebase-app-check-debug"
"@nativescript/firebase-app-check-debug": "file:../../packages/firebase-app-check-debug",
"@nativescript/firebase-messaging-core": "file:../../packages/firebase-messaging-core"
},
"devDependencies": {
"@nativescript/android": "~8.2.0",
Expand Down
2 changes: 2 additions & 0 deletions apps/demo/src/main-page.xml
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@

<Page xmlns="http://schemas.nativescript.org/tns.xsd" navigatingTo="navigatingTo" class="page">
<Button text="firebase-messaging-core" tap="{{ viewDemo }}" class="btn btn-primary view-demo"/>
<Page.actionBar>
<ActionBar title="Plugin Demos" icon="" class="action-bar"/>
</Page.actionBar>
Expand Down
10 changes: 10 additions & 0 deletions apps/demo/src/plugin-demos/firebase-messaging-core.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
import { Observable, EventData, Page } from '@nativescript/core';
import { DemoSharedFirebaseMessagingCore } from '@demo/shared';
import {} from '@nativescript/firebase-messaging-core';

export function navigatingTo(args: EventData) {
const page = <Page>args.object;
page.bindingContext = new DemoModel();
}

export class DemoModel extends DemoSharedFirebaseMessagingCore {}
14 changes: 14 additions & 0 deletions apps/demo/src/plugin-demos/firebase-messaging-core.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
<Page xmlns="http://schemas.nativescript.org/tns.xsd" navigatingTo="navigatingTo" class="page">
<Page.actionBar>
<ActionBar title="firebase-messaging-core" icon="" class="action-bar">
</ActionBar>
</Page.actionBar>
<StackLayout class="p-20">
<ScrollView class="h-full">
<StackLayout>
<Button text="Test firebase-messaging-core" tap="{{ testIt }}" class="btn btn-primary"/>

</StackLayout>
</ScrollView>
</StackLayout>
</Page>
19 changes: 19 additions & 0 deletions packages/firebase-core/common.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
export interface IFirebaseOptions {
apiKey?: string;
gcmSenderId?: string;
androidClientId?: string;
appGroupId?: string;
bundleId?: string;
clientId?: string;
databaseURL?: string;
deepLinkURLScheme?: string;
googleAppId?: string;
projectId?: string;
storageBucket?: string;
trackingId?: string;
}
export interface FirebaseConfig {
automaticDataCollectionEnabled?: boolean;
automaticResourceManagement?: boolean;
name?: string;
}
2 changes: 1 addition & 1 deletion packages/firebase-installations/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@nativescript/firebase-installations",
"version": "2.0.2",
"version": "2.1.0",
"description": "NativeScript Firebase - Installations",
"main": "index",
"typings": "index.d.ts",
Expand Down
18 changes: 18 additions & 0 deletions packages/firebase-messaging-core/.eslintrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
{
"extends": ["../../.eslintrc.json"],
"ignorePatterns": ["!**/*", "node_modules/**/*"],
"overrides": [
{
"files": ["*.ts", "*.tsx", "*.js", "*.jsx"],
"rules": {}
},
{
"files": ["*.ts", "*.tsx"],
"rules": {}
},
{
"files": ["*.js", "*.jsx"],
"rules": {}
}
]
}
13 changes: 13 additions & 0 deletions packages/firebase-messaging-core/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# @nativescript/firebase-messaging-core

```javascript
ns plugin add @nativescript/firebase-messaging-core
```

## Usage

// TODO

## License

Apache License Version 2.0
7 changes: 7 additions & 0 deletions packages/firebase-messaging-core/enums.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
export declare const enum AuthorizationStatus {
AUTHORIZED = 0,
DENIED = 1,
NOT_DETERMINED = 2,
PROVISIONAL = 3,
EPHEMERAL = 4,
}
7 changes: 7 additions & 0 deletions packages/firebase-messaging-core/enums.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
export const enum AuthorizationStatus {
AUTHORIZED,
DENIED,
NOT_DETERMINED,
PROVISIONAL,
EPHEMERAL,
}

0 comments on commit a53d5a9

Please sign in to comment.