feat: Add slashcommand api

This commit is contained in:
2026-06-05 17:12:26 +02:00
parent 4070ef6caf
commit 8ecfc9a1fe
101 changed files with 3526 additions and 147 deletions

View File

@@ -16,6 +16,7 @@ dependencies {
implementation project(':capacitor-filesystem')
implementation project(':capacitor-local-notifications')
implementation project(':capacitor-push-notifications')
implementation project(':capawesome-capacitor-app-update')
}

View File

@@ -53,6 +53,9 @@
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_MICROPHONE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />

View File

@@ -1,5 +1,6 @@
package com.metoyou.app;
import android.Manifest;
import android.app.Activity;
import android.app.PictureInPictureParams;
import android.content.Context;
@@ -9,13 +10,57 @@ import android.os.Build;
import android.util.Rational;
import com.getcapacitor.JSObject;
import com.getcapacitor.PermissionState;
import com.getcapacitor.Plugin;
import com.getcapacitor.PluginCall;
import com.getcapacitor.PluginMethod;
import com.getcapacitor.annotation.CapacitorPlugin;
import com.getcapacitor.annotation.Permission;
import com.getcapacitor.annotation.PermissionCallback;
@CapacitorPlugin(name = "MetoyouMobile")
@CapacitorPlugin(
name = "MetoyouMobile",
permissions = {
@Permission(
strings = { Manifest.permission.RECORD_AUDIO, Manifest.permission.MODIFY_AUDIO_SETTINGS },
alias = MetoyouMobilePlugin.MICROPHONE
),
@Permission(strings = { Manifest.permission.CAMERA }, alias = MetoyouMobilePlugin.CAMERA)
}
)
public class MetoyouMobilePlugin extends Plugin {
static final String MICROPHONE = "microphone";
static final String CAMERA = "camera";
@PluginMethod
public void requestVoiceCapturePermissions(PluginCall call) {
if (getPermissionState(MICROPHONE) == PermissionState.GRANTED) {
resolveCapturePermission(call, MICROPHONE);
return;
}
requestPermissionForAlias(MICROPHONE, call, "voiceCapturePermissionsCallback");
}
@PluginMethod
public void requestCameraCapturePermissions(PluginCall call) {
if (getPermissionState(CAMERA) == PermissionState.GRANTED) {
resolveCapturePermission(call, CAMERA);
return;
}
requestPermissionForAlias(CAMERA, call, "cameraCapturePermissionsCallback");
}
@PermissionCallback
private void voiceCapturePermissionsCallback(PluginCall call) {
resolveCapturePermission(call, MICROPHONE);
}
@PermissionCallback
private void cameraCapturePermissionsCallback(PluginCall call) {
resolveCapturePermission(call, CAMERA);
}
@PluginMethod
public void setSpeakerphoneEnabled(PluginCall call) {
Boolean enabled = call.getBoolean("enabled", false);
@@ -112,4 +157,10 @@ public class MetoyouMobilePlugin extends Plugin {
result.put("configured", configured);
call.resolve(result);
}
private void resolveCapturePermission(PluginCall call, String alias) {
JSObject result = new JSObject();
result.put(alias, getPermissionState(alias).toString());
call.resolve(result);
}
}

View File

@@ -22,3 +22,6 @@ project(':capacitor-local-notifications').projectDir = new File('../../node_modu
include ':capacitor-push-notifications'
project(':capacitor-push-notifications').projectDir = new File('../../node_modules/@capacitor/push-notifications/android')
include ':capawesome-capacitor-app-update'
project(':capawesome-capacitor-app-update').projectDir = new File('../../node_modules/@capawesome/capacitor-app-update/android')