Giter Club home page Giter Club logo

krypt's People

Contributors

am-ghaseminia avatar amirahbg avatar dependabot[bot] avatar mehdiyari avatar mhdabbaghy avatar

Stargazers

 avatar  avatar

Watchers

 avatar

krypt's Issues

Get the backup path from the user

Is your feature request related to a problem? Please describe.
No, This is just a new feature.

Describe the solution you'd like
Currently, the flow is that once the user clicks on the backup we save the backup in Krypt private folders, this causes storage usage if Krypt contains a lot of files. I want to request a feature the user can select the path once click on the backup and we can save the backup file directly to this path.

Whats needs to be done:

  1. Once the user clicks on the backup we request user to select a folder.
  2. Once the user selects the folder we check the permission.
  3. If the user grant the permission then we write the backup to the selected folder.
  4. We show the message to the user that the backup was saved to this folder.
  5. We show the backup in the list.
  6. We should change the save action on the backup items, if the user clicks on them we loop the below items and move the current backup.

Describe alternatives you've considered
No Alternative.

Media Player Infra

We need a media player infrastructure for playing encrypted sounds inside krypt.

  1. Implement a media player
  2. Integrate it with the media player view

Compatible APP with android 13

Android 13 has a lot of changes regarding permissions and some other things. This issue was created to be compatible with Krypt and libraries that we use with Android 13.

Increase code coverage to +85%

Because this project started under time force in the beginning, we did not write tests, and after some time, only some view models and some repositories have test cases.

AC

  1. ViewModels should have line coverage of more than 85%.
  2. Repositories should have line coverage of more than 85%.
  3. Utility classes like cartography and file utils should have line coverage of more than 85%.
  4. Add code coverage workflow to actions.

Modularization

In this issue, we want to discuss this RFC and track the implementation of Modularization for Krypt project.

Text of the add text screen will disappear in configuration changes(not always)

Describe the bug
Text of the add text screen will disappear in configuration changes(not always).

To Reproduce
Steps to reproduce the behavior:

  1. Go to Add Texts screen
  2. Write something
  3. Rotate the screen, open multiple windows
  4. Text will disappear

Expected behavior
In all cases, the text should not disappear.

Screenshots
If applicable, add screenshots to help explain your problem.

Smartphone (please complete the following information):

  • Device: [e.g. Pixel 7 Pro]
  • OS: [e.g. Android 13

Extract theme module

Extract the theme files to ":core:designsystme:theme" and move the related files to it

We have duplicated method `formatSize` in 2 modules

Dear @mehdiyari during task #86 I found that we have a formatSize method used by SelectMediaItemsin app module and another one in DataViewModel in the backup module
Currently, I moved the one in the app module to the media module but we have to fix it later
I opened this issue here to prevent forgetting this problem

Prepare Stable Release(3.1.0)

This issue is about followup the changes and scope of the next release. This release will be published on Google play also.

Import a backup / Restore Feature

We have a feature that users can back up and extract their accounts into a custom file. But currently, they can only remove it, and there is no feature to import that custom file.

AC

  1. Have a flow before login to accept backup files with a password.
  2. The flow should only accept the *.krp files.
  3. Once the file is selected, the app should validate the file with a password.
  4. When the password is okay, then the app should show a simple data preview, and when the user accepts to import the account, it should import, and the app should restart.
  5. If we currently have the same account in the app, we shoxuld ask the user to change the username.

Dev Note

  1. We currently have an infra for importing backup files in RestoreRepository.kt

Extract Cryptography Module

Regarding the Modularization topic, we want to extract the Cryptography logic inside the app module to the new module.

Navigation bug in media screen

Describe the bug

We have a bug on Krypt related to navigations, this happens once the user does not select any media from the media picker, and once clicks on the back, the home does not show on the main screen.

To Reproduce
Steps to reproduce the behavior:

  1. Login
  2. Click on Add media
  3. Select nothing and click on the back button.
  4. Home content does not show properly to the user

Expected behavior
The home should be shown to the user.

Screenshots

Smartphone (please complete the following information):

  • Device: [Pixel 7 Pro] [All of the devices]
  • OS: [Android 13] [All of the devices]

Additional context
This bug happened because the onBackPressed callback for the media screen was called more than one time

Add image-loader module

Summary

We need a module for configuring project image-loading, cache strategy and loading encrypted images and videos.

Problem

Currently, we don't have any logic for handling caching of images, also the image-loading logic is placed in different modules.

Affected modules/flows

Media modules will be affected.

UI Tests for composables

Summary

This issue is for coordinating and implementing UI tests for compostables inside the krypt.

Problem

There is no automation test inside the krypt for the UI layer, we aim to create these automation tests for the UI to increase the app's stability.

Affected modules/flows

All of the feature modules.

Remove all fragments and refactor the navigation System with compose

One of the Technical Depts we have uses fragments with compose; this issue is created to discuss this dept.

  1. Remove all of the Fragments
  2. Change the navigation system from fragment-based navigation to compose-based navigation.
  3. Improve the code quality of view models and compose views.
  4. Using a standard approach for a preview of composing views.
  5. Migrate to Material3 and use new API's

AC

  1. All of the Fragments should be removed.
  2. Navigation should work with compose.

Refactor Setting Views

Currently, The settings screen does not use LazyColumn for showing settings items.

AC

  1. Settings Items should use LazyColumn with the capability to show a custom view for each item.
  2. Each Item should have a custom onClick.

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.