diff --git a/apps/computer-vision/App.tsx b/apps/computer-vision/App.tsx deleted file mode 100644 index e0c869b916..0000000000 --- a/apps/computer-vision/App.tsx +++ /dev/null @@ -1,129 +0,0 @@ -import ScrollPicker from 'react-native-wheel-scrollview-picker'; -import ColorPalette from './colors'; -import SWMIcon from './assets/icons/swm_icon.svg'; -import { useFonts } from 'expo-font'; -import { useState } from 'react'; -import { StyleTransferScreen } from './screens/StyleTransferScreen'; -import { SafeAreaProvider, SafeAreaView } from 'react-native-safe-area-context'; -import { View, StyleSheet } from 'react-native'; -import { ClassificationScreen } from './screens/ClassificationScreen'; -import { ObjectDetectionScreen } from './screens/ObjectDetectionScreen'; -import { OCRScreen } from './screens/OCRScreen'; -import { VerticalOCRScreen } from './screens/VerticalOCRScreen'; -import { ImageSegmentationScreen } from './screens/ImageSegmentationScreen'; - -enum ModelType { - STYLE_TRANSFER, - OBJECT_DETECTION, - CLASSIFICATION, - OCR, - VERTICAL_OCR, - IMAGE_SEGMENTATION, -} - -export default function App() { - useFonts({ - medium: require('./assets/fonts/Aeonik-Medium.otf'), - regular: require('./assets/fonts/Aeonik-Regular.otf'), - }); - const [selectedMode, setSelectedMode] = useState( - ModelType.STYLE_TRANSFER - ); - const [imageUri, setImageUri] = useState(''); - - const handleModeChange = (mode: ModelType) => { - setSelectedMode(mode); - }; - - const renderScreen = () => { - switch (selectedMode) { - case ModelType.STYLE_TRANSFER: - return ( - - ); - case ModelType.OBJECT_DETECTION: - return ( - - ); - case ModelType.CLASSIFICATION: - return ( - - ); - case ModelType.OCR: - return ; - case ModelType.VERTICAL_OCR: - return ( - - ); - case ModelType.IMAGE_SEGMENTATION: - return ( - - ); - default: - return ( - - ); - } - }; - - return ( - - - - - - { - handleModeChange(selectedIndex); - }} - wrapperHeight={100} - highlightColor={ColorPalette.primary} - wrapperBackground="#fff" - highlightBorderWidth={3} - itemHeight={40} - activeItemTextStyle={styles.activeScrollItem} - /> - - - {renderScreen()} - - - ); -} - -const styles = StyleSheet.create({ - container: { - flex: 1, - backgroundColor: '#fff', - }, - topContainer: { - marginTop: 5, - height: 145, - width: '100%', - alignItems: 'center', - justifyContent: 'center', - marginBottom: 16, - }, - wheelPickerContainer: { - width: '100%', - height: 100, - }, - activeScrollItem: { - color: ColorPalette.primary, - fontWeight: 'bold', - }, -}); diff --git a/apps/computer-vision/ScreenWrapper.tsx b/apps/computer-vision/ScreenWrapper.tsx new file mode 100644 index 0000000000..0d1a9dae5f --- /dev/null +++ b/apps/computer-vision/ScreenWrapper.tsx @@ -0,0 +1,8 @@ +import { useIsFocused } from '@react-navigation/native'; +import { PropsWithChildren } from 'react'; + +export default function ScreenWrapper({ children }: PropsWithChildren) { + const isFocused = useIsFocused(); + + return isFocused ? <>{children} : null; +} diff --git a/apps/computer-vision/android/app/src/main/AndroidManifest.xml b/apps/computer-vision/android/app/src/main/AndroidManifest.xml index 5516f1955e..25d6cb299c 100644 --- a/apps/computer-vision/android/app/src/main/AndroidManifest.xml +++ b/apps/computer-vision/android/app/src/main/AndroidManifest.xml @@ -20,6 +20,12 @@ + + + + + + \ No newline at end of file diff --git a/apps/computer-vision/android/app/src/main/res/values/styles.xml b/apps/computer-vision/android/app/src/main/res/values/styles.xml index 00ab510a50..f5abe3d52c 100644 --- a/apps/computer-vision/android/app/src/main/res/values/styles.xml +++ b/apps/computer-vision/android/app/src/main/res/values/styles.xml @@ -1,9 +1,9 @@