@lukiteam/react-native-luki-general
v0.2.61
Published
Contains native modules used in the luki application
Maintainers
Readme
react-native-luki-general
Contains native modules used in the luki application
Installation
npm install @lukiteam/react-native-luki-generalUsage
getImageSize
import { getImageSize } from '@lukiteam/react-native-luki-general';
type ImageSize = {
width: number;
height: number;
};
const uri = 'content://media/external/images/media/123';
try {
const size = await getImageSize(uri);
console.log('Image size:', size.width, size.height);
} catch (error) {
console.error('Failed to get image size:', error);
}LukiGeneralEventEmitter - onPhotoLibraryChange
import { LukiGeneralEventEmitter } from '@lukiteam/react-native-luki-general';
useEffect(() => {
const subscription = LukiGeneralEventEmitter.addListener(
'onPhotoLibraryChange',
() => {
// You can re-fetch albums or photos here
refreshAlbumsAndPhotos();
}
);
return () => {
subscription.remove();
};
}, []);isImageMirrored
import { isImageMirrored } from '@lukiteam/react-native-luki-general';
const mirrored = await isImageMirrored(uri);
console.log('Is mirrored:', mirrored); // response true or falseCopyToClipboard
import { copyToClipboard } from '@lukiteam/react-native-luki-general';
const text = 'Kopyalanan metin/ Copied sentence';
await copyToClipboard(text);startCallAudio
import { startCallAudio } from '@lukiteam/react-native-luki-general';
await startCallAudio();
console.log('Call mod has made to activated!');stopCallAudio
import { stopCallAudio } from '@lukiteam/react-native-luki-general';
await stopCallAudio();
console.log('Call mod stopped.');getAudioRoutes
type AudioRoute = {
id: 'receiver' | 'speaker' | 'wired' | 'bluetooth';
type: 'receiver' | 'speaker' | 'wired' | 'bluetooth';
name: string;
selected: boolean;
selectable: boolean;
};
import { getAudioRoutes } from '@lukiteam/react-native-luki-general';
const routes = await getAudioRoutes();
routes.forEach(route => {
console.log(`Output: ${route.name}, Selected: ${route.selected}`);
});
startAudioRouteMonitor - stopAudioRouteMonitor - onAudioRouteChange
import {
startAudioRouteMonitor,
stopAudioRouteMonitor,
LukiGeneralEventEmitter,
} from '@lukiteam/react-native-luki-general';
import { useEffect } from 'react';
useEffect(() => {
// starting monitor
startAudioRouteMonitor();
// fetching event by listen
const sub = LukiGeneralEventEmitter.addListener(
'onAudioRouteChange',
(event) => {
console.log('Audio output devices list has changed:', event);
// event = { platform: "ios" | "android", outputType: "speaker" | "receiver" | "wired" | "bluetooth", ... }
}
);
return () => {
// Clear event sub
sub.remove();
stopAudioRouteMonitor();
};
}, []);setKeepScreenOn
import { setKeepScreenOn } from '@lukiteam/react-native-luki-general';
import { useEffect } from 'react';
export default function MyRecordingScreen() {
useEffect(() => {
// provide keep to wake the screen while calling
setKeepScreenOn(true);
return () => {
// allow to sleep screen after finished call
setKeepScreenOn(false);
};
}, []);
return null;
}ensureBluetoothEligible
import { ensureBluetoothEligible } from '@lukiteam/react-native-luki-general';
const checkBluetooth = async () => {
try {
const isEligible = await ensureBluetoothEligible();
if (isEligible) {
console.log('Bluetooth supporting and can use!');
} else {
console.warn('Bluetooth has not supported cannot use!');
}
} catch (error) {
console.error('Bluetooth available control has been failed:', error);
}
};License
MIT © Luki Team Organization
Made with create-react-native-library
