Giter Site home page Giter Site logo

feyroozecode / android-kdrive Goto Github PK

View Code? Open in Web Editor NEW

This project forked from infomaniak/android-kdrive

0.0 0.0 0.0 38.65 MB

Home Page: https://play.google.com/store/apps/details?id=com.infomaniak.drive

License: GNU General Public License v3.0

Kotlin 100.00%

android-kdrive's Introduction

Infomaniak kDrive app

A modern Android application for kDrive by Infomaniak.

Synchronise, share, collaborate. The Swiss cloud that’s 100% secure.

☁️ All the space you need

Always have access to all your photos, videos and documents. kDrive can store up to 106 TB of data.

🌐 A collaborative ecosystem. Everything included.

Collaborate online on Office documents, organise meetings, share your work. Anything is possible!

🔒 kDrive respects your privacy

Protect your data in a sovereign cloud exclusively developed and hosted in Switzerland. Infomaniak doesn’t analyze or resell your data.

Download from Google Play Get it on F-Droid

License & Contributions

This project is under GPLv3 license. If you see a bug or an enhanceable point, feel free to create an issue, so that we can discuss about it, and once approved, we or you (depending on the priority of the bug/improvement) will take care of the issue and apply a merge request. Please, don't do a merge request before creating an issue.

Tech things

Languages

Layouts were made in XML with Android "Layout" components, the whole project is developed in Kotlin.

Compatibility

The minimum needed version to execute the app is Android Lollipop 5.1 (API 22), anyway, we recommend to use the most recent version of Android, the majority of our tests having been carried out on Android 10 & 11 (API 29 & 30).

Cache

We use Realm.io on both platforms (iOS and Android) to store the offline data of files, shares, app and user preferences (in different databases instances). Android Room is used to store API access token and basic user data.

Structure

The structure of the app, its algorithms and the general functioning are common with the iOS app.

Permissions

Permission key Usage
GET_ACCOUNTS, AUTHENTICATE_ACCOUNTS, MANAGE_ACCOUNTS, USE_CREDENTIALS Used to access and manage AccountManager.
com.infomaniak.permission.ASK_CREDENTIAL, com.infomaniak.permission.RECEIVE_CREDENTIAL (Unused for the moment) Allow kDrive to communicate (get and give) credentials to other Infomaniak apps (in order to authenticate user without asking them to login).
INTERNET, ACCESS_NETWORK_STATE Used to determine if device has access to Internet in order to update UI and to restrict some features when offline.
READ_EXTERNAL_STORAGE, WRITE_EXTERNAL_STORAGE READ is used to access files on device to upload them on kDrive. WRITE is used to download files from kDrive on device and to use MediaStore.
READ_SYNC_SETTINGS, WRITE_SYNC_SETTINGS, READ_SYNC_STATS Used to manage automatic synchronization (e.g. determine if sync is enabled, enable it, etc.)
RECEIVE_BOOT_COMPLETED Determine when device is booted to restart sync service if needed.
FOREGROUND_SERVICE Used by Download Worker (for offline files) and Sync Service.
REQUEST_IGNORE_BATTERY_OPTIMIZATIONS Allow to download files in background.
USE_BIOMETRIC Used to (un)lock the app.
REQUEST_INSTALL_PACKAGES Allow users to execute an APK from kDrive app.

Tests

In order to test the app with Unit and UI tests, you have to copy Env-Example class in AndroidTest package and name it Env.
⚠️ Don't forget to disable 2FA on your Infomaniak account if you want to execute tests, this feature is not supported for AddUser test.
Replace values contained in file by yours and launch the tests 👍

android-kdrive's People

Contributors

fabiandevel avatar jorisbodin avatar kevinboulongne avatar kilian-perisset avatar lunarx avatar mijorus avatar sirambd avatar tevincent avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.