Skip to content

Repository files navigation

Awd DriveRouter Android 📱☁️🔀

Awd DriveRouter Android Logo

License Badge Android Badge Kotlin Badge Jetpack Compose Badge MVVM Clean Architecture

Awd DriveRouter Android is a sophisticated mobile file management application designed to bridge multiple cloud storage services into a single, cohesive experience. Built with Kotlin and Jetpack Compose, it provides an intelligent routing layer for your files, supporting seamless browsing, multi-account management, and background synchronization across various providers including Google Drive, OneDrive, Dropbox, Box, WebDAV, and SFTP.


🌐 Language / Bahasa


📌 Table of Contents


✨ Key Features

  • 🔀 Unified Cloud Management: Connect and navigate multiple cloud accounts (Google Drive, OneDrive, Dropbox, Box, WebDAV, SFTP) from a single intuitive interface.
  • 📤 Intelligent Routing: Automatically distribute uploads across providers based on smart strategies like "Largest Free Space" or "Round Robin".
  • 📂 Professional File Explorer: Full-featured manager with multi-selection, batch actions, internal PDF preview, and native app integration.
  • 🔄 Automatic Background Backup: Folder sync running reliably in the background via Android Foreground Services.
  • 🔒 Secure Credential Storage: Uses Android's EncryptedSharedPreferences to store OAuth tokens and server credentials securely at rest.
  • 🎨 Material 3 Design: Fully responsive UI with support for Dynamic Color, Dark/Light modes, and bilingual support (EN/ID).

📷 Screenshots

Home File Explorer Navigation Drawer Auto Backup
Home File Explorer
Home File Explorer
Navigation Drawer
Navigation Drawer
Auto Backup
Auto Backup
Upload Strategy Cloud Accounts File Upload
Upload Strategy
Upload Strategy
Cloud Accounts
Cloud Accounts
File Upload
File Upload

☁️ Supported Providers & Setup Guide

In the Android app, go to Settings → Cloud Provider Settings to view your app identity details (Package Name, SHA-1 (HEX), SHA-1 (Base64), and Redirect URIs) with 1-click copy buttons.

Provider Type Provider Console Link Setup & Credentials Flow
Google Drive OAuth 2.0 Google Cloud Console 1. Create OAuth Client ID (Desktop app) -> Copy Client ID & Client Secret to App Settings.
2. Use http://localhost as the default redirect URI.
OneDrive OAuth 2.0 Microsoft Entra 1. Register App in Entra admin center.
2. Add Public client/native platform with Redirect URI: http://localhost.
3. Copy Application (client) ID into App Settings.
Dropbox OAuth 2.0 Dropbox Console 1. Create app with Scoped Access (files.content.read/write).
2. Register Redirect URI: awd-driverouter://dropbox-auth
3. Copy App Key into App Settings.
Box OAuth 2.0 Box Console 1. Create Custom App (User Authentication OAuth 2.0).
2. Register Redirect URI: awd-driverouter://box-auth
3. Copy Client ID & Client Secret into App Settings.
WebDAV Protocol - Direct connection. Enter Server URL, Username, and Password directly in the Connect Account dialog.
SFTP (SSH) Protocol - Direct connection. Enter Host/IP, Port (default 22), Username, and Password in the Connect Account dialog.

📁 Architecture & Tech Stack

  • UI: Jetpack Compose (Material 3)
  • Asynchronous: Kotlin Coroutines & Flow
  • Dependency Injection: Hilt
  • Local Database: Room (Caching metadata & account records)
  • Security: EncryptedSharedPreferences (MasterKey)
  • Networking: Retrofit, OkHttp, Sardine (WebDAV), SSHJ (SFTP)
  • Architecture: MVVM with Clean Architecture principles

🚀 Getting Started

Prerequisites

  • Android device running Android 8.0 (API 26) or higher.
  • Cloud provider API credentials (for Google, OneDrive, Dropbox, or Box).

Installation

  1. Download the latest APK from the Releases page.
  2. Install the APK on your device (ensure "Install from Unknown Sources" is enabled).

🛠️ Developer Guide

Project Directory Structure

awd-driverouter-android/
├── app/                    # Main Android application module
│   ├── src/main/java/com/awd/driverouter/
│   │   ├── data/           # Repository, DAO, and Provider implementations
│   │   ├── di/             # Hilt modules
│   │   ├── domain/         # Business models and provider interfaces
│   │   ├── ui/             # Jetpack Compose screens and viewmodels
│   │   └── util/           # Formatting and helper utilities
│   └── build.gradle.kts    # Module dependencies
├── docs/screenshots/       # Screenshots for documentation
├── gradle/                 # Gradle wrapper
└── README.md               # English Documentation

Building from Source

  1. Clone the repository:
    git clone https://github.com/putuwahyu29/awd-driverouter-android.git
  2. Open in Android Studio (Iguana or newer).
  3. Build the project:
    ./gradlew assembleDebug

⚙️ Troubleshooting

  • OAuth Callback Issues: Ensure you are using the correct Desktop app (Google) or Public client/native (OneDrive) type. These types use http://localhost which is automatically handled by the app.
  • Google Drive Error: If you get an error, ensure you created a Desktop app credential and copied BOTH the Client ID and Client Secret correctly.
  • OneDrive Error: Ensure you selected Accounts in any organizational directory and personal Microsoft accounts during registration to allow personal account login.

⚠️ Disclaimer

This project is an independent open-source development. It is not officially endorsed by Google, Microsoft, Dropbox, Box, or any other service provider mentioned. Users are responsible for ensuring compliance with each provider's Terms of Service.


📄 License

This project is licensed under the MIT License. See the LICENSE file for details.


Made with ❤️ by I Putu Agus Wahyu Dupayana

About

Awd DriveRouter Android is a sophisticated mobile file management application designed to bridge multiple cloud storage services into a single, cohesive experience. Built with Kotlin and Jetpack Compose

Topics

Resources

Stars

4 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages