metag-sdk-ionic 1.2.7-native-0.131 → 1.2.7-native-0.133

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -37,10 +37,6 @@ export declare class HybridVideoSelfieComponent implements AfterViewInit, OnDest
37
37
  processHTML5Recording(): Promise<void>;
38
38
  startNativeCameraPreview(): Promise<void>;
39
39
  stopNativeCameraPreview(): Promise<void>;
40
- handleStartClick(event: Event): void;
41
- handleScreenTap(): void;
42
- startNativeVideoRecord(): Promise<void>;
43
- stopNativeRecording(): Promise<void>;
44
40
  pathToFile(videoPath: string): Promise<File>;
45
41
  cleanup(): Promise<void>;
46
42
  closeOverlayVideo(): Promise<void>;
@@ -82,77 +82,8 @@ function HybridVideoSelfieComponent_div_0_Template(rf, ctx) { if (rf & 1) {
82
82
  i0.ɵɵadvance();
83
83
  i0.ɵɵproperty("ngIf", !ctx_r1.isRecording && ctx_r1.countdown === 0 && !ctx_r1.isProcessing);
84
84
  } }
85
- function HybridVideoSelfieComponent_div_1_div_2_Template(rf, ctx) { if (rf & 1) {
86
- i0.ɵɵelementStart(0, "div", 11)(1, "div", 12)(2, "h2");
87
- i0.ɵɵtext(3);
88
- i0.ɵɵelementEnd();
89
- i0.ɵɵelementStart(4, "p");
90
- i0.ɵɵtext(5);
91
- i0.ɵɵelementEnd()()();
92
- } if (rf & 2) {
93
- const ctx_r1 = i0.ɵɵnextContext(2);
94
- i0.ɵɵadvance(3);
95
- i0.ɵɵtextInterpolate(ctx_r1.text1);
96
- i0.ɵɵadvance(2);
97
- i0.ɵɵtextInterpolate(ctx_r1.text2);
98
- } }
99
- function HybridVideoSelfieComponent_div_1_div_3_Template(rf, ctx) { if (rf & 1) {
100
- i0.ɵɵelementStart(0, "div", 13)(1, "div", 14);
101
- i0.ɵɵtext(2);
102
- i0.ɵɵelementEnd()();
103
- } if (rf & 2) {
104
- const ctx_r1 = i0.ɵɵnextContext(2);
105
- i0.ɵɵadvance(2);
106
- i0.ɵɵtextInterpolate(ctx_r1.countdown);
107
- } }
108
- function HybridVideoSelfieComponent_div_1_div_4_Template(rf, ctx) { if (rf & 1) {
109
- i0.ɵɵelementStart(0, "div", 15)(1, "div", 16);
110
- i0.ɵɵtext(2);
111
- i0.ɵɵelementEnd();
112
- i0.ɵɵelementStart(3, "div", 17);
113
- i0.ɵɵtext(4, "GRABANDO");
114
- i0.ɵɵelementEnd()();
115
- } if (rf & 2) {
116
- const ctx_r1 = i0.ɵɵnextContext(2);
117
- i0.ɵɵadvance(2);
118
- i0.ɵɵtextInterpolate1("\uD83D\uDD34 ", ctx_r1.timeRemaining, "s");
119
- } }
120
- function HybridVideoSelfieComponent_div_1_div_5_Template(rf, ctx) { if (rf & 1) {
121
- i0.ɵɵelementStart(0, "div", 18);
122
- i0.ɵɵelement(1, "ion-spinner", 19);
123
- i0.ɵɵelementStart(2, "p");
124
- i0.ɵɵtext(3, "Procesando video...");
125
- i0.ɵɵelementEnd()();
126
- } }
127
- function HybridVideoSelfieComponent_div_1_button_6_Template(rf, ctx) { if (rf & 1) {
128
- const _r5 = i0.ɵɵgetCurrentView();
129
- i0.ɵɵelementStart(0, "button", 20);
130
- i0.ɵɵlistener("click", function HybridVideoSelfieComponent_div_1_button_6_Template_button_click_0_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.handleStartClick($event)); });
131
- i0.ɵɵelement(1, "ion-icon", 21);
132
- i0.ɵɵelementStart(2, "span");
133
- i0.ɵɵtext(3, "COMENZAR GRABACI\u00D3N");
134
- i0.ɵɵelementEnd()();
135
- } }
136
85
  function HybridVideoSelfieComponent_div_1_Template(rf, ctx) { if (rf & 1) {
137
- const _r4 = i0.ɵɵgetCurrentView();
138
- i0.ɵɵelementStart(0, "div", 22)(1, "div", 23);
139
- i0.ɵɵtemplate(2, HybridVideoSelfieComponent_div_1_div_2_Template, 6, 2, "div", 5)(3, HybridVideoSelfieComponent_div_1_div_3_Template, 3, 1, "div", 6)(4, HybridVideoSelfieComponent_div_1_div_4_Template, 5, 1, "div", 7)(5, HybridVideoSelfieComponent_div_1_div_5_Template, 4, 0, "div", 8)(6, HybridVideoSelfieComponent_div_1_button_6_Template, 4, 0, "button", 9);
140
- i0.ɵɵelementStart(7, "button", 10);
141
- i0.ɵɵlistener("click", function HybridVideoSelfieComponent_div_1_Template_button_click_7_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.closeRequestedFunction($event)); });
142
- i0.ɵɵtext(8, "\u2715");
143
- i0.ɵɵelementEnd()()();
144
- } if (rf & 2) {
145
- const ctx_r1 = i0.ɵɵnextContext();
146
- i0.ɵɵadvance(2);
147
- i0.ɵɵproperty("ngIf", !ctx_r1.isRecording && ctx_r1.countdown === 0 && !ctx_r1.isProcessing);
148
- i0.ɵɵadvance();
149
- i0.ɵɵproperty("ngIf", ctx_r1.countdown > 0);
150
- i0.ɵɵadvance();
151
- i0.ɵɵproperty("ngIf", ctx_r1.isRecording);
152
- i0.ɵɵadvance();
153
- i0.ɵɵproperty("ngIf", ctx_r1.isProcessing);
154
- i0.ɵɵadvance();
155
- i0.ɵɵproperty("ngIf", !ctx_r1.isRecording && ctx_r1.countdown === 0 && !ctx_r1.isProcessing);
86
+ i0.ɵɵelement(0, "div", 22);
156
87
  } }
157
88
  export class HybridVideoSelfieComponent {
158
89
  constructor(platform, modalController, alertController, changeDetector, modalDpiServices) {
@@ -248,9 +179,7 @@ export class HybridVideoSelfieComponent {
248
179
  if (this.useHTML5) {
249
180
  this.startHTML5Recording();
250
181
  }
251
- else {
252
- this.startNativeVideoRecord();
253
- }
182
+ // Para Android, el plugin nativo maneja la grabación internamente
254
183
  }
255
184
  this.changeDetector.detectChanges();
256
185
  }, 1000);
@@ -333,7 +262,7 @@ export class HybridVideoSelfieComponent {
333
262
  async startNativeCameraPreview() {
334
263
  try {
335
264
  await new Promise(resolve => setTimeout(resolve, 100));
336
- console.log('[HybridVideoSelfie] Iniciando plugin nativo CustomVideoRecorder');
265
+ console.log('[HybridVideoSelfie] Iniciando plugin nativo CustomVideoRecorder con UI nativa');
337
266
  // Solicitar permisos primero
338
267
  console.log('[HybridVideoSelfie] Solicitando permisos...');
339
268
  const permResult = await CustomVideoRecorder.requestPermissions();
@@ -342,10 +271,26 @@ export class HybridVideoSelfieComponent {
342
271
  throw new Error('Se necesitan permisos de cámara y audio');
343
272
  }
344
273
  console.log('[HybridVideoSelfie] ✅ Permisos concedidos');
345
- console.log('[HybridVideoSelfie] ✅ Preview VISIBLE con overlays HTML interactivos');
274
+ console.log('[HybridVideoSelfie] ✅ Iniciando preview con UI 100% nativa (sin HTML)');
275
+ // Listener para cuando termine la grabación
276
+ CustomVideoRecorder.addListener('recordingComplete', async (data) => {
277
+ console.log('[HybridVideoSelfie] Grabación completada:', data.videoPath);
278
+ this.isProcessing = true;
279
+ try {
280
+ const file = await this.pathToFile(data.videoPath);
281
+ this.capVideo = file;
282
+ this.isProcessing = false;
283
+ if (this.backFunction) {
284
+ await this.backFunction(file);
285
+ }
286
+ }
287
+ catch (error) {
288
+ console.error('[HybridVideoSelfie] Error procesando video:', error);
289
+ this.isProcessing = false;
290
+ }
291
+ });
346
292
  await CustomVideoRecorder.startPreview();
347
- console.log('[HybridVideoSelfie] ✅ CustomVideoRecorder iniciado correctamente');
348
- this.changeDetector.detectChanges();
293
+ console.log('[HybridVideoSelfie] ✅ CustomVideoRecorder iniciado - UI completamente nativa');
349
294
  }
350
295
  catch (error) {
351
296
  console.error('[HybridVideoSelfie] ❌ Error iniciando CustomVideoRecorder:', error);
@@ -361,60 +306,7 @@ export class HybridVideoSelfieComponent {
361
306
  console.error('[HybridVideoSelfie] Error deteniendo CustomVideoRecorder:', error);
362
307
  }
363
308
  }
364
- handleStartClick(event) {
365
- event.stopPropagation();
366
- if (!this.isRecording && !this.isProcessing && this.countdown === 0) {
367
- this.startRecording();
368
- }
369
- }
370
- handleScreenTap() {
371
- // Tap en área general (reservado para expansión futura)
372
- }
373
- async startNativeVideoRecord() {
374
- try {
375
- console.log('[HybridVideoSelfie] Iniciando grabación con CustomVideoRecorder...');
376
- this.isRecording = true;
377
- this.timeRemaining = 5;
378
- await CustomVideoRecorder.startRecording();
379
- console.log('[HybridVideoSelfie] Grabación iniciada con plugin nativo');
380
- this.recordingTimer = setInterval(() => {
381
- this.timeRemaining -= 1;
382
- this.changeDetector.detectChanges();
383
- if (this.timeRemaining <= 0) {
384
- clearInterval(this.recordingTimer);
385
- this.stopNativeRecording();
386
- }
387
- }, 1000);
388
- }
389
- catch (error) {
390
- console.error('[HybridVideoSelfie] Error iniciando grabación:', error);
391
- this.isRecording = false;
392
- await this.showError('No se pudo iniciar la grabación: ' + error.message);
393
- }
394
- }
395
- async stopNativeRecording() {
396
- try {
397
- console.log('[HybridVideoSelfie] Deteniendo grabación...');
398
- const result = await CustomVideoRecorder.stopRecording();
399
- this.isRecording = false;
400
- this.isProcessing = true;
401
- this.changeDetector.detectChanges();
402
- console.log('[HybridVideoSelfie] Video grabado en:', result.videoPath);
403
- const file = await this.pathToFile(result.videoPath);
404
- console.log('[HybridVideoSelfie] File creado:', file.size, 'bytes');
405
- this.capVideo = file;
406
- this.isProcessing = false;
407
- if (this.backFunction) {
408
- await this.backFunction(file);
409
- }
410
- }
411
- catch (error) {
412
- console.error('[HybridVideoSelfie] Error deteniendo grabación:', error);
413
- this.isRecording = false;
414
- this.isProcessing = false;
415
- await this.showError('No se pudo procesar el video: ' + error.message);
416
- }
417
- }
309
+ // Los métodos de grabación ahora son manejados internamente por el plugin nativo
418
310
  async pathToFile(videoPath) {
419
311
  try {
420
312
  console.log('[HybridVideoSelfie] Convirtiendo path a File:', videoPath);
@@ -491,8 +383,8 @@ export class HybridVideoSelfieComponent {
491
383
  } if (rf & 2) {
492
384
  let _t;
493
385
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.videoElement = _t.first);
494
- } }, inputs: { text1: "text1", text2: "text2", backFunction: "backFunction" }, outputs: { closeRequested: "closeRequested" }, standalone: true, features: [i0.ɵɵStandaloneFeature], decls: 2, vars: 2, consts: [["videoElement", ""], ["class", "camera-fullscreen", 4, "ngIf"], ["class", "camera-fullscreen-native", 4, "ngIf"], [1, "camera-fullscreen"], ["autoplay", "", "playsinline", "", 1, "video-preview"], ["class", "instructions-overlay", 4, "ngIf"], ["class", "countdown-overlay", 4, "ngIf"], ["class", "timer-overlay", 4, "ngIf"], ["class", "processing-overlay", 4, "ngIf"], ["class", "start-record-button", 3, "click", 4, "ngIf"], [1, "close-button", 3, "click"], [1, "instructions-overlay"], [1, "instruction-box"], [1, "countdown-overlay"], [1, "countdown"], [1, "timer-overlay"], [1, "timer"], [1, "recording-indicator"], [1, "processing-overlay"], ["name", "crescent"], [1, "start-record-button", 3, "click"], ["name", "videocam"], [1, "camera-fullscreen-native"], [1, "native-overlay-container"]], template: function HybridVideoSelfieComponent_Template(rf, ctx) { if (rf & 1) {
495
- i0.ɵɵtemplate(0, HybridVideoSelfieComponent_div_0_Template, 10, 5, "div", 1)(1, HybridVideoSelfieComponent_div_1_Template, 9, 5, "div", 2);
386
+ } }, inputs: { text1: "text1", text2: "text2", backFunction: "backFunction" }, outputs: { closeRequested: "closeRequested" }, standalone: true, features: [i0.ɵɵStandaloneFeature], decls: 2, vars: 2, consts: [["videoElement", ""], ["class", "camera-fullscreen", 4, "ngIf"], ["class", "camera-fullscreen-native", 4, "ngIf"], [1, "camera-fullscreen"], ["autoplay", "", "playsinline", "", 1, "video-preview"], ["class", "instructions-overlay", 4, "ngIf"], ["class", "countdown-overlay", 4, "ngIf"], ["class", "timer-overlay", 4, "ngIf"], ["class", "processing-overlay", 4, "ngIf"], ["class", "start-record-button", 3, "click", 4, "ngIf"], [1, "close-button", 3, "click"], [1, "instructions-overlay"], [1, "instruction-box"], [1, "countdown-overlay"], [1, "countdown"], [1, "timer-overlay"], [1, "timer"], [1, "recording-indicator"], [1, "processing-overlay"], ["name", "crescent"], [1, "start-record-button", 3, "click"], ["name", "videocam"], [1, "camera-fullscreen-native"]], template: function HybridVideoSelfieComponent_Template(rf, ctx) { if (rf & 1) {
387
+ i0.ɵɵtemplate(0, HybridVideoSelfieComponent_div_0_Template, 10, 5, "div", 1)(1, HybridVideoSelfieComponent_div_1_Template, 1, 0, "div", 2);
496
388
  } if (rf & 2) {
497
389
  i0.ɵɵproperty("ngIf", ctx.useHTML5);
498
390
  i0.ɵɵadvance();
@@ -543,48 +435,10 @@ export class HybridVideoSelfieComponent {
543
435
  <button class="close-button" (click)="closeRequestedFunction($event)">✕</button>
544
436
  </div>
545
437
 
546
- <!-- Versión Nativa para Android con Preview Visible -->
438
+ <!-- Versión Nativa para Android - Todo renderizado nativamente en Java -->
547
439
  <div *ngIf="!useHTML5" class="camera-fullscreen-native">
548
- <!-- El preview nativo se renderiza aquí automáticamente (TextureView) -->
549
-
550
- <!-- Overlay HTML sobre el preview nativo -->
551
- <div class="native-overlay-container">
552
- <!-- Instrucciones iniciales -->
553
- <div *ngIf="!isRecording && countdown === 0 && !isProcessing" class="instructions-overlay">
554
- <div class="instruction-box">
555
- <h2>{{ text1 }}</h2>
556
- <p>{{ text2 }}</p>
557
- </div>
558
- </div>
559
-
560
- <!-- Countdown antes de iniciar -->
561
- <div *ngIf="countdown > 0" class="countdown-overlay">
562
- <div class="countdown">{{ countdown }}</div>
563
- </div>
564
-
565
- <!-- Timer durante grabación -->
566
- <div *ngIf="isRecording" class="timer-overlay">
567
- <div class="timer">🔴 {{ timeRemaining }}s</div>
568
- <div class="recording-indicator">GRABANDO</div>
569
- </div>
570
-
571
- <!-- Mensaje de procesamiento -->
572
- <div *ngIf="isProcessing" class="processing-overlay">
573
- <ion-spinner name="crescent"></ion-spinner>
574
- <p>Procesando video...</p>
575
- </div>
576
-
577
- <!-- Botón interactivo de comenzar grabación -->
578
- <button *ngIf="!isRecording && countdown === 0 && !isProcessing"
579
- class="start-record-button"
580
- (click)="handleStartClick($event)">
581
- <ion-icon name="videocam"></ion-icon>
582
- <span>COMENZAR GRABACIÓN</span>
583
- </button>
584
-
585
- <!-- Botón cerrar siempre visible -->
586
- <button class="close-button" (click)="closeRequestedFunction($event)">✕</button>
587
- </div>
440
+ <!-- La UI completa (preview, botones, overlays) se renderiza nativamente desde el plugin Java -->
441
+ <!-- No se necesita HTML aquí, el plugin CustomVideoRecorder maneja todo -->
588
442
  </div>
589
443
  `, encapsulation: ViewEncapsulation.Emulated, styles: [":host { display: block; position: fixed; top: 0; left: 0; width: 100%; height: 100%; z-index: 2147483646 !important; background: transparent !important; pointer-events: auto !important; }", ".camera-fullscreen { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: transparent !important; pointer-events: auto !important; z-index: 2147483646 !important; }", ".camera-fullscreen-native { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: transparent !important; pointer-events: none !important; z-index: 2147483646 !important; }", ".native-overlay-container { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: transparent !important; pointer-events: auto !important; z-index: 2147483647 !important; }", ".video-preview { position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover; transform: scaleX(-1); }", ".instructions-overlay, .countdown-overlay, .timer-overlay, .processing-overlay { background: transparent !important; box-shadow: none !important; }", ".modal-wrapper, .modal-shadow, ion-content, ion-page, .inner-scroll, .background-content { background: transparent !important; --background: transparent !important; --ion-background-color: transparent !important; box-shadow: none !important; }", ".instructions-overlay { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: transparent !important; display: flex; justify-content: center; align-items: center; z-index: 2147483646 !important; pointer-events: none; }", ".instruction-box { background: rgba(156, 39, 176, 0.95); padding: 30px; border-radius: 20px; text-align: center; max-width: 80%; box-shadow: 0 8px 16px rgba(0,0,0,0.3); }", ".instruction-box h2 { color: white; font-size: 28px; font-weight: bold; margin: 0 0 15px 0; }", ".instruction-box p { color: white; font-size: 16px; margin: 10px 0; line-height: 1.5; }", ".preview-notice { display: flex; align-items: center; justify-content: center; gap: 10px; background: rgba(255, 255, 255, 0.2); padding: 12px 20px; border-radius: 12px; margin-top: 20px; }", ".preview-notice ion-icon { font-size: 24px; color: white; }", ".preview-notice span { color: white; font-size: 14px; font-weight: 500; }", ".countdown-overlay { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: transparent !important; display: flex; justify-content: center; align-items: center; z-index: 2147483646 !important; pointer-events: none; }", ".countdown { font-size: 120px; color: white; font-weight: bold; animation: pulse 1s ease-in-out; }", "@keyframes pulse { 0%, 100% { opacity: 1; transform: scale(1); } 50% { opacity: 0.8; transform: scale(0.95); } }", ".timer-overlay { position: fixed; top: 20px; left: 50%; transform: translateX(-50%); z-index: 2147483646 !important; pointer-events: none; text-align: center; background: transparent !important; }", ".timer { background: rgba(244, 67, 54, 0.95); color: white; font-size: 32px; font-weight: bold; padding: 10px 20px; border-radius: 20px; box-shadow: 0 4px 8px rgba(0,0,0,0.3); margin-bottom: 10px; }", ".recording-indicator { background: rgba(0, 0, 0, 0.7); color: white; font-size: 14px; font-weight: bold; padding: 5px 15px; border-radius: 10px; }", ".processing-overlay { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: transparent !important; display: flex; flex-direction: column; justify-content: center; align-items: center; z-index: 2147483646 !important; pointer-events: none; }", ".processing-overlay ion-spinner { --color: white; width: 60px; height: 60px; margin-bottom: 20px; }", ".processing-overlay p { color: white; font-size: 18px; font-weight: bold; }", ".close-button { position: fixed; top: 20px; right: 20px; width: 50px; height: 50px; border-radius: 50%; background: rgba(0, 0, 0, 0.6); color: white; border: 2px solid white; font-size: 24px; font-weight: bold; cursor: pointer; z-index: 2147483646 !important; display: flex; align-items: center; justify-content: center; box-shadow: 0 4px 8px rgba(0,0,0,0.3); pointer-events: auto !important; }", ".start-record-button { position: fixed; bottom: 80px; left: 50%; transform: translateX(-50%); background: linear-gradient(135deg, #9c27b0, #e91e63); color: white; border: none; border-radius: 50px; padding: 20px 40px; font-size: 20px; font-weight: bold; display: flex; align-items: center; gap: 12px; box-shadow: 0 8px 20px rgba(156, 39, 176, 0.6); z-index: 2147483646 !important; pointer-events: auto !important; cursor: pointer; transition: all 0.3s ease; animation: pulseBtn 1.5s infinite; }", ".start-record-button:active { transform: translateX(-50%) scale(0.95); box-shadow: 0 4px 12px rgba(156, 39, 176, 0.8); }", ".start-record-button ion-icon { font-size: 26px; }", "@keyframes pulseBtn { 0%, 100% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.08); } }"] }]
590
444
  }], () => [{ type: i1.Platform }, { type: i1.ModalController }, { type: i1.AlertController }, { type: i0.ChangeDetectorRef }, { type: i2.ModalDpiServices }], { text1: [{
@@ -599,5 +453,5 @@ export class HybridVideoSelfieComponent {
599
453
  type: ViewChild,
600
454
  args: ['videoElement']
601
455
  }] }); })();
602
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(HybridVideoSelfieComponent, { className: "HybridVideoSelfieComponent", filePath: "src\\app\\pages\\id-vision\\components\\hybrid-video-selfie\\hybrid-video-selfie.component.ts", lineNumber: 136 }); })();
456
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(HybridVideoSelfieComponent, { className: "HybridVideoSelfieComponent", filePath: "src\\app\\pages\\id-vision\\components\\hybrid-video-selfie\\hybrid-video-selfie.component.ts", lineNumber: 98 }); })();
603
457
  //# sourceMappingURL=hybrid-video-selfie.component.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"hybrid-video-selfie.component.js","sourceRoot":"","sources":["../../../../../../../src/app/pages/id-vision/components/hybrid-video-selfie/hybrid-video-selfie.component.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hybrid-video-selfie.component.js","sourceRoot":"","sources":["../../../../../../../src/app/pages/id-vision/components/hybrid-video-selfie/hybrid-video-selfie.component.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { PluginListenerHandle } from '@capacitor/core';
1
2
  export interface CustomVideoRecorderPlugin {
2
3
  requestPermissions(): Promise<{
3
4
  camera: boolean;
@@ -16,6 +17,10 @@ export interface CustomVideoRecorderPlugin {
16
17
  success: boolean;
17
18
  videoPath: string;
18
19
  }>;
20
+ addListener(eventName: 'recordingComplete', listenerFunc: (data: {
21
+ success: boolean;
22
+ videoPath: string;
23
+ }) => void): Promise<PluginListenerHandle> & PluginListenerHandle;
19
24
  }
20
25
  declare const CustomVideoRecorder: CustomVideoRecorderPlugin;
21
26
  export default CustomVideoRecorder;
@@ -1 +1 @@
1
- {"version":3,"file":"custom-video-recorder.js","sourceRoot":"","sources":["../../../../../../src/app/pages/id-vision/services/custom-video-recorder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAUjD,MAAM,mBAAmB,GAAG,cAAc,CAA4B,qBAAqB,CAAC,CAAC;AAE7F,eAAe,mBAAmB,CAAC"}
1
+ {"version":3,"file":"custom-video-recorder.js","sourceRoot":"","sources":["../../../../../../src/app/pages/id-vision/services/custom-video-recorder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAwB,MAAM,iBAAiB,CAAC;AAcvE,MAAM,mBAAmB,GAAG,cAAc,CAA4B,qBAAqB,CAAC,CAAC;AAE7F,eAAe,mBAAmB,CAAC"}
@@ -2,15 +2,14 @@ package com.metag.sdk;
2
2
 
3
3
  import android.Manifest;
4
4
  import android.content.pm.PackageManager;
5
- import android.graphics.SurfaceTexture;
5
+ import android.graphics.*;
6
6
  import android.hardware.camera2.*;
7
7
  import android.media.MediaRecorder;
8
8
  import android.os.Handler;
9
9
  import android.os.HandlerThread;
10
10
  import android.util.Size;
11
- import android.view.Surface;
12
- import android.view.TextureView;
13
- import android.view.ViewGroup;
11
+ import android.util.TypedValue;
12
+ import android.view.*;
14
13
  import android.widget.FrameLayout;
15
14
  import androidx.annotation.NonNull;
16
15
  import androidx.core.app.ActivityCompat;
@@ -38,12 +37,14 @@ public class CustomVideoRecorder extends Plugin {
38
37
  private CameraCaptureSession cameraCaptureSession;
39
38
  private CaptureRequest.Builder captureRequestBuilder;
40
39
  private MediaRecorder mediaRecorder;
41
- private TextureView textureView;
40
+ private CameraOverlayView overlayView;
42
41
  private HandlerThread backgroundThread;
43
42
  private Handler backgroundHandler;
44
43
  private Size videoSize;
45
44
  private String videoFilePath;
46
45
  private boolean isRecording = false;
46
+ private int countdown = 0;
47
+ private int timeRemaining = 5;
47
48
 
48
49
  @PluginMethod
49
50
  public void requestPermissions(PluginCall call) {
@@ -70,18 +71,19 @@ public class CustomVideoRecorder extends Plugin {
70
71
 
71
72
  getActivity().runOnUiThread(() -> {
72
73
  try {
73
- textureView = new TextureView(getContext());
74
- textureView.setSurfaceTextureListener(surfaceTextureListener);
75
-
76
74
  ViewGroup webViewParent = (ViewGroup) getBridge().getWebView().getParent();
77
75
 
76
+ // Crear vista de overlay nativo con preview y UI
77
+ overlayView = new CameraOverlayView(getContext(), this);
78
+
78
79
  FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(
79
80
  FrameLayout.LayoutParams.MATCH_PARENT,
80
81
  FrameLayout.LayoutParams.MATCH_PARENT
81
82
  );
82
- webViewParent.addView(textureView, 0, params);
83
+ webViewParent.addView(overlayView, params);
83
84
 
84
85
  getBridge().getWebView().setBackgroundColor(0x00000000);
86
+ getBridge().getWebView().setVisibility(View.GONE);
85
87
 
86
88
  JSObject ret = new JSObject();
87
89
  ret.put("success", true);
@@ -96,15 +98,16 @@ public class CustomVideoRecorder extends Plugin {
96
98
  public void stopPreview(PluginCall call) {
97
99
  getActivity().runOnUiThread(() -> {
98
100
  closeCamera();
99
- if (textureView != null) {
100
- ViewGroup parent = (ViewGroup) textureView.getParent();
101
+ if (overlayView != null) {
102
+ ViewGroup parent = (ViewGroup) overlayView.getParent();
101
103
  if (parent != null) {
102
- parent.removeView(textureView);
104
+ parent.removeView(overlayView);
103
105
  }
104
- textureView = null;
106
+ overlayView = null;
105
107
  }
106
108
 
107
109
  getBridge().getWebView().setBackgroundColor(0xFFFFFFFF);
110
+ getBridge().getWebView().setVisibility(View.VISIBLE);
108
111
 
109
112
  JSObject ret = new JSObject();
110
113
  ret.put("success", true);
@@ -260,7 +263,11 @@ public class CustomVideoRecorder extends Plugin {
260
263
 
261
264
  private void startPreviewSession() {
262
265
  try {
263
- SurfaceTexture texture = textureView.getSurfaceTexture();
266
+ if (overlayView == null || overlayView.textureView == null) return;
267
+
268
+ SurfaceTexture texture = overlayView.textureView.getSurfaceTexture();
269
+ if (texture == null) return;
270
+
264
271
  texture.setDefaultBufferSize(videoSize.getWidth(), videoSize.getHeight());
265
272
  Surface surface = new Surface(texture);
266
273
 
@@ -371,4 +378,236 @@ public class CustomVideoRecorder extends Plugin {
371
378
  == PackageManager.PERMISSION_GRANTED);
372
379
  call.resolve(ret);
373
380
  }
381
+
382
+ // Vista personalizada que combina TextureView (preview) + Canvas (UI)
383
+ private class CameraOverlayView extends FrameLayout {
384
+ private TextureView textureView;
385
+ private Paint paint;
386
+ private Paint textPaint;
387
+ private Paint buttonPaint;
388
+ private RectF recordButton;
389
+ private RectF closeButton;
390
+ private CustomVideoRecorder plugin;
391
+
392
+ public CameraOverlayView(android.content.Context context, CustomVideoRecorder plugin) {
393
+ super(context);
394
+ this.plugin = plugin;
395
+
396
+ // TextureView para preview de cámara
397
+ textureView = new TextureView(context);
398
+ textureView.setSurfaceTextureListener(surfaceTextureListener);
399
+ addView(textureView, new FrameLayout.LayoutParams(
400
+ FrameLayout.LayoutParams.MATCH_PARENT,
401
+ FrameLayout.LayoutParams.MATCH_PARENT
402
+ ));
403
+
404
+ // Configurar paints
405
+ paint = new Paint(Paint.ANTI_ALIAS_FLAG);
406
+
407
+ textPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
408
+ textPaint.setColor(Color.WHITE);
409
+ textPaint.setTextSize(dpToPx(20));
410
+ textPaint.setTextAlign(Paint.Align.CENTER);
411
+ textPaint.setTypeface(Typeface.create(Typeface.DEFAULT, Typeface.BOLD));
412
+
413
+ buttonPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
414
+ buttonPaint.setColor(Color.parseColor("#9C27B0"));
415
+
416
+ // Áreas de botones
417
+ recordButton = new RectF();
418
+ closeButton = new RectF();
419
+
420
+ setWillNotDraw(false);
421
+ setClickable(true);
422
+ }
423
+
424
+ @Override
425
+ protected void onDraw(Canvas canvas) {
426
+ super.onDraw(canvas);
427
+
428
+ int width = getWidth();
429
+ int height = getHeight();
430
+
431
+ if (countdown > 0) {
432
+ // Dibujar countdown
433
+ paint.setColor(Color.parseColor("#99000000"));
434
+ canvas.drawRect(0, 0, width, height, paint);
435
+
436
+ textPaint.setTextSize(dpToPx(80));
437
+ canvas.drawText(String.valueOf(countdown), width / 2, height / 2, textPaint);
438
+ textPaint.setTextSize(dpToPx(20));
439
+ } else if (isRecording) {
440
+ // Dibujar timer de grabación
441
+ paint.setColor(Color.parseColor("#CCF44336"));
442
+ canvas.drawRoundRect(width / 2 - dpToPx(100), dpToPx(20),
443
+ width / 2 + dpToPx(100), dpToPx(80), dpToPx(20), dpToPx(20), paint);
444
+
445
+ canvas.drawText("🔴 " + timeRemaining + "s", width / 2, dpToPx(55), textPaint);
446
+ } else {
447
+ // Dibujar botón de grabar
448
+ int buttonWidth = dpToPx(200);
449
+ int buttonHeight = dpToPx(60);
450
+ int buttonX = (width - buttonWidth) / 2;
451
+ int buttonY = height - dpToPx(150);
452
+
453
+ recordButton.set(buttonX, buttonY, buttonX + buttonWidth, buttonY + buttonHeight);
454
+
455
+ buttonPaint.setColor(Color.parseColor("#9C27B0"));
456
+ canvas.drawRoundRect(recordButton, dpToPx(30), dpToPx(30), buttonPaint);
457
+
458
+ textPaint.setTextSize(dpToPx(18));
459
+ canvas.drawText("⬤ GRABAR", width / 2, buttonY + dpToPx(38), textPaint);
460
+ textPaint.setTextSize(dpToPx(20));
461
+ }
462
+
463
+ // Botón cerrar siempre visible
464
+ int closeSize = dpToPx(50);
465
+ closeButton.set(width - dpToPx(70), dpToPx(20),
466
+ width - dpToPx(20), dpToPx(70));
467
+
468
+ paint.setColor(Color.parseColor("#AA000000"));
469
+ canvas.drawCircle(closeButton.centerX(), closeButton.centerY(), closeSize / 2, paint);
470
+
471
+ paint.setColor(Color.WHITE);
472
+ paint.setStrokeWidth(dpToPx(3));
473
+ paint.setStyle(Paint.Style.STROKE);
474
+ canvas.drawLine(closeButton.centerX() - dpToPx(12), closeButton.centerY() - dpToPx(12),
475
+ closeButton.centerX() + dpToPx(12), closeButton.centerY() + dpToPx(12), paint);
476
+ canvas.drawLine(closeButton.centerX() + dpToPx(12), closeButton.centerY() - dpToPx(12),
477
+ closeButton.centerX() - dpToPx(12), closeButton.centerY() + dpToPx(12), paint);
478
+ paint.setStyle(Paint.Style.FILL);
479
+ }
480
+
481
+ @Override
482
+ public boolean onTouchEvent(MotionEvent event) {
483
+ if (event.getAction() == MotionEvent.ACTION_DOWN) {
484
+ float x = event.getX();
485
+ float y = event.getY();
486
+
487
+ // Check botón cerrar
488
+ if (closeButton.contains(x, y)) {
489
+ stopPreview(null);
490
+ return true;
491
+ }
492
+
493
+ // Check botón grabar
494
+ if (!isRecording && countdown == 0 && recordButton.contains(x, y)) {
495
+ startCountdown();
496
+ return true;
497
+ }
498
+ }
499
+ return super.onTouchEvent(event);
500
+ }
501
+
502
+ private int dpToPx(float dp) {
503
+ return (int) TypedValue.applyDimension(
504
+ TypedValue.COMPLEX_UNIT_DIP, dp,
505
+ getContext().getResources().getDisplayMetrics()
506
+ );
507
+ }
508
+
509
+ public void updateUI() {
510
+ invalidate();
511
+ }
512
+ }
513
+
514
+ private void startCountdown() {
515
+ countdown = 3;
516
+ overlayView.updateUI();
517
+
518
+ Handler handler = new Handler();
519
+ Runnable countdownRunnable = new Runnable() {
520
+ @Override
521
+ public void run() {
522
+ countdown--;
523
+ overlayView.updateUI();
524
+
525
+ if (countdown > 0) {
526
+ handler.postDelayed(this, 1000);
527
+ } else {
528
+ startRecordingInternal();
529
+ }
530
+ }
531
+ };
532
+ handler.postDelayed(countdownRunnable, 1000);
533
+ }
534
+
535
+ private void startRecordingInternal() {
536
+ try {
537
+ setUpMediaRecorder();
538
+
539
+ Surface recorderSurface = mediaRecorder.getSurface();
540
+ captureRequestBuilder = cameraDevice.createCaptureRequest(CameraDevice.TEMPLATE_RECORD);
541
+ captureRequestBuilder.addTarget(recorderSurface);
542
+ captureRequestBuilder.addTarget(new Surface(overlayView.textureView.getSurfaceTexture()));
543
+
544
+ cameraDevice.createCaptureSession(
545
+ Arrays.asList(recorderSurface, new Surface(overlayView.textureView.getSurfaceTexture())),
546
+ new CameraCaptureSession.StateCallback() {
547
+ @Override
548
+ public void onConfigured(@NonNull CameraCaptureSession session) {
549
+ cameraCaptureSession = session;
550
+ try {
551
+ session.setRepeatingRequest(
552
+ captureRequestBuilder.build(),
553
+ null,
554
+ backgroundHandler
555
+ );
556
+ mediaRecorder.start();
557
+ isRecording = true;
558
+ timeRemaining = 5;
559
+ overlayView.updateUI();
560
+
561
+ startRecordingTimer();
562
+ } catch (Exception e) {
563
+ e.printStackTrace();
564
+ }
565
+ }
566
+
567
+ @Override
568
+ public void onConfigureFailed(@NonNull CameraCaptureSession session) {}
569
+ },
570
+ backgroundHandler
571
+ );
572
+ } catch (Exception e) {
573
+ e.printStackTrace();
574
+ }
575
+ }
576
+
577
+ private void startRecordingTimer() {
578
+ Handler handler = new Handler();
579
+ Runnable timerRunnable = new Runnable() {
580
+ @Override
581
+ public void run() {
582
+ timeRemaining--;
583
+ overlayView.updateUI();
584
+
585
+ if (timeRemaining > 0) {
586
+ handler.postDelayed(this, 1000);
587
+ } else {
588
+ stopRecordingInternal();
589
+ }
590
+ }
591
+ };
592
+ handler.postDelayed(timerRunnable, 1000);
593
+ }
594
+
595
+ private void stopRecordingInternal() {
596
+ try {
597
+ mediaRecorder.stop();
598
+ mediaRecorder.reset();
599
+ isRecording = false;
600
+ overlayView.updateUI();
601
+
602
+ // Notificar al JavaScript
603
+ JSObject ret = new JSObject();
604
+ ret.put("success", true);
605
+ ret.put("videoPath", videoFilePath);
606
+ notifyListeners("recordingComplete", ret);
607
+
608
+ startPreviewSession();
609
+ } catch (Exception e) {
610
+ e.printStackTrace();
611
+ }
612
+ }
374
613
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "metag-sdk-ionic",
3
- "version": "1.2.7-native-0.131",
3
+ "version": "1.2.7-native-0.133",
4
4
  "author": "FGE",
5
5
  "description": "SDK de MetaG para validación de documentos y prueba de vida con Angular e Ionic.",
6
6
  "homepage": "https://ionicframework.com/",