A modern Android application built with Kotlin and Material Design, featuring navigation drawer, QR code scanning, and file management capabilities.
- Main dashboard of the application
- Clean and modern Material Design interface
- Search Functionality: Real-time search through assets and directories
- Asset Browser: Display assets and directories with icons
- Asset Details: Show file sizes and directory information
- Interactive List: Click on assets for actions (currently shows toast messages)
- Camera Integration: Uses CameraX for camera functionality
- Real-time Scanning: ML Kit Barcode Scanning for instant QR code detection
- Automatic Clipboard: Scanned QR codes are automatically copied to clipboard
- User Feedback: Toast notifications for successful scans and clipboard operations
- Permission Handling: Automatic camera permission requests
Screenshots will be added here once the app is running
- Language: Kotlin
- Minimum SDK: 24 (Android 7.0)
- Target SDK: 35 (Android 15)
- Architecture: MVVM with ViewModel and LiveData
- UI Framework: Material Design Components
- Navigation: Android Navigation Component
- Camera: CameraX
- QR Scanning: ML Kit Barcode Scanning
- Build System: Gradle with Kotlin DSL
androidx.core:core-ktx- Kotlin extensionsandroidx.appcompat:appcompat- AppCompat librarycom.google.android.material:material- Material Design componentsandroidx.constraintlayout:constraintlayout- Constraint Layout
androidx.lifecycle:lifecycle-livedata-ktx- LiveDataandroidx.lifecycle:lifecycle-viewmodel-ktx- ViewModelandroidx.navigation:navigation-fragment-ktx- Navigationandroidx.navigation:navigation-ui-ktx- Navigation UI
androidx.camera:camera-core:1.3.1- CameraX coreandroidx.camera:camera-camera2:1.3.1- Camera2 implementationandroidx.camera:camera-lifecycle:1.3.1- Camera lifecycleandroidx.camera:camera-view:1.3.1- Camera previewcom.google.mlkit:barcode-scanning:17.2.0- ML Kit barcode scanning
app/src/main/
├── java/com/example/ongc/
│ ├── MainActivity.kt
│ └── ui/
│ ├── home/
│ │ ├── HomeFragment.kt
│ │ └── HomeViewModel.kt
│ ├── files/
│ │ ├── FilesFragment.kt
│ │ ├── FilesViewModel.kt
│ │ ├── FilesAdapter.kt
│ │ └── FileItem.kt
│ └── qrscanner/
│ ├── QRScannerFragment.kt
│ ├── QRScannerViewModel.kt
│ └── QRCodeAnalyzer.kt
├── res/
│ ├── drawable/ - Icons and graphics
│ ├── layout/ - UI layouts
│ ├── menu/ - Navigation menu
│ ├── navigation/ - Navigation graphs
│ └── values/ - Strings, colors, themes
└── AndroidManifest.xml
- Android Studio Arctic Fox or later
- Android SDK 24 or higher
- Kotlin 1.8+ or later
-
Clone the repository
git clone <repository-url> cd ONGC
-
Open in Android Studio
- Open Android Studio
- Select "Open an existing Android Studio project"
- Navigate to the project directory and select it
-
Sync Gradle
- Wait for Gradle sync to complete
- Resolve any dependency issues if they occur
-
Build and Run
./gradlew build
- Connect an Android device or start an emulator
- Click the "Run" button in Android Studio
The app requires the following permissions:
- Camera: For QR code scanning functionality
- Hardware Camera: Required feature for camera operations
- Use the navigation drawer (hamburger menu) to switch between sections
- The app bar displays the current section title
- The floating action button (FAB) is available on the home screen
- Navigate to "QR Scanner" from the navigation drawer
- Grant camera permission when prompted
- Position a QR code within the scan frame
- The QR code content will be automatically copied to clipboard
- A confirmation message will appear
- Navigate to "Asset Directory" from the navigation drawer
- Use the search bar to filter assets by name
- Click on any asset to see details (currently shows a toast)
- Clear the search using the X button to show all assets
- New Navigation Items: Add to
mobile_navigation.xmlandactivity_main_drawer.xml - New Fragments: Create in the
uipackage following the existing pattern - New Icons: Add drawable resources in the
res/drawablefolder
- Colors: Modify
colors.xmlfor app-wide color changes - Themes: Update
themes.xmlfor styling changes - App Bar Color: Currently set to
#88030F(dark red)
- Real File System: Replace sample data in
FilesViewModelwith actual file system access - File Actions: Implement custom actions in
FilesAdapterclick handlers - Permissions: Add storage permissions for file system access
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Material Design for the UI components
- Google ML Kit for QR code scanning capabilities
- CameraX for modern camera integration
- Android Navigation Component for seamless navigation
For support and questions:
- Create an issue in the repository
- Contact the development team
- Check the documentation for common issues
Version: 1.0
Last Updated: December 2024
Maintainer: ONGC Development Team