# reilandeubank/unprocess architecture

> Architecture diagram of the GitHub repository reilandeubank/unprocess, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-12). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/reilandeubank/unprocess
- Repository: https://github.com/reilandeubank/unprocess

## Overview

unprocess is an Android Camera2 app for capturing images with less computational processing. The documented workflow lets a user choose RAW or JPEG, captures sensor data, and saves either a DNG or a JPEG produced by converting the raw data to a bitmap and compressing it. The README establishes these stages, but the supplied source excerpt does not show their implementation or wiring; the graph therefore avoids asserting unverified calls. Source details for the viewer, permissions, and utility modules were not provided.

Main entry points: [`app/src/main/java/com/example/android/camera2/basic/fragments/CameraFragment.kt`](https://github.com/reilandeubank/unprocess/blob/main/app/src/main/java/com/example/android/camera2/basic/fragments/CameraFragment.kt) (Camera capture), [`app/src/main/java/com/example/android/camera2/basic/fragments/SelectorFragment.kt`](https://github.com/reilandeubank/unprocess/blob/main/app/src/main/java/com/example/android/camera2/basic/fragments/SelectorFragment.kt) (Format selection)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_ui["App interface"]
  node_activity["Camera activity<br/>[CameraActivity.kt]"]
  node_selector["Format selection"]
  node_viewer["Image viewer"]
  node_permissions["Permissions"]
end

subgraph group_capture["Image capture"]
  node_camera["Camera capture<br/>[CameraFragment.kt]"]
  node_raw["RAW sensor data"]
end

subgraph group_outputs["Saved formats"]
  node_jpeg_conversion["RAW-to-JPEG conversion"]
  node_dng["DNG output"]
  node_jpeg["JPEG output"]
end

node_user(("User"))
node_camera2["Android Camera2 API"]

node_user -->|"chooses format"| node_selector
node_camera -->|"captures sensor data"| node_camera2
node_camera2 -->|"provides raw data"| node_raw
node_raw -->|"saves as DNG"| node_dng
node_raw -->|"converts to bitmap"| node_jpeg_conversion
node_jpeg_conversion -->|"compresses to JPEG"| node_jpeg

click node_activity "https://github.com/reilandeubank/unprocess/blob/main/app/src/main/java/com/example/android/camera2/basic/CameraActivity.kt"
click node_selector "https://github.com/reilandeubank/unprocess/blob/main/app/src/main/java/com/example/android/camera2/basic/fragments/SelectorFragment.kt"
click node_viewer "https://github.com/reilandeubank/unprocess/blob/main/app/src/main/java/com/example/android/camera2/basic/fragments/ImageViewerFragment.kt"
click node_permissions "https://github.com/reilandeubank/unprocess/blob/main/app/src/main/java/com/example/android/camera2/basic/fragments/PermissionsFragment.kt"
click node_camera "https://github.com/reilandeubank/unprocess/blob/main/app/src/main/java/com/example/android/camera2/basic/fragments/CameraFragment.kt"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_activity,node_selector,node_viewer,node_permissions,node_user toneBlue
class node_camera,node_raw toneAmber
class node_jpeg_conversion,node_dng,node_jpeg,node_camera2 toneMint
```

## Components

### App interface

- [Camera activity](https://github.com/reilandeubank/unprocess/blob/main/app/src/main/java/com/example/android/camera2/basic/CameraActivity.kt): `app/src/main/java/com/example/android/camera2/basic/CameraActivity.kt`
- [Format selection](https://github.com/reilandeubank/unprocess/blob/main/app/src/main/java/com/example/android/camera2/basic/fragments/SelectorFragment.kt): `app/src/main/java/com/example/android/camera2/basic/fragments/SelectorFragment.kt`
- [Image viewer](https://github.com/reilandeubank/unprocess/blob/main/app/src/main/java/com/example/android/camera2/basic/fragments/ImageViewerFragment.kt): `app/src/main/java/com/example/android/camera2/basic/fragments/ImageViewerFragment.kt`
- [Permissions](https://github.com/reilandeubank/unprocess/blob/main/app/src/main/java/com/example/android/camera2/basic/fragments/PermissionsFragment.kt): `app/src/main/java/com/example/android/camera2/basic/fragments/PermissionsFragment.kt`

### Image capture

- [Camera capture](https://github.com/reilandeubank/unprocess/blob/main/app/src/main/java/com/example/android/camera2/basic/fragments/CameraFragment.kt): `app/src/main/java/com/example/android/camera2/basic/fragments/CameraFragment.kt`
- **RAW sensor data**

### Saved formats

- **RAW-to-JPEG conversion**
- **DNG output**
- **JPEG output**

### Other components

- **User**
- **Android Camera2 API**

## Connections

- User → Format selection: chooses format (evidence: `README.md`)
- Camera capture → Android Camera2 API: captures sensor data (evidence: `README.md`)
- Android Camera2 API → RAW sensor data: provides raw data (evidence: `README.md`)
- RAW sensor data → DNG output: saves as DNG (evidence: `README.md`)
- RAW sensor data → RAW-to-JPEG conversion: converts to bitmap (evidence: `README.md`)
- RAW-to-JPEG conversion → JPEG output: compresses to JPEG (evidence: `README.md`)
