Coder Social home page Coder Social logo

nicorac / bcr-gui Goto Github PK

View Code? Open in Web Editor NEW
105.0 5.0 3.0 3.41 MB

BCR-GUI is a companion app for the great BCR (Basic Call Recorder) Android application.

Home Page: https://coolsoft.altervista.org

License: GNU General Public License v3.0

Java 18.92% TypeScript 60.43% SCSS 6.35% HTML 12.10% JavaScript 2.20%
android-app angular call-recording capacitor capacitor-android gui ionic ionic-capacitor

bcr-gui's Introduction

BCR-GUI

What is BCR-GUI

BCR-GUI is a companion app for the great BCR (Basic Call Recorder) Android application.

It also supports other recording applications:

To manage BCR call recordings, you actually need to use a file manager... and thats not so user-friendly ๐Ÿ˜‰. It's hard to "extract" call informations from audio filename, and its even harder to search them when the list grows.

Such a feature was already requested, but chenxiaolong (the author of BCR) wants to keep BCR Basic; and I do agree with him! Call recording on Android is a hard work, and I'd like (and hope) him to stay focused on it... recordings management is a job made for BCR-GUI ๐Ÿ˜‚.

Requirements

BCR-GUI needs BCR v.1.49 (or newer) to work at its best, because it needs the new JSON call metadata feature to extract and show detailed call info in its call list. In case of missing JSON file (eg. recordings done before 1.49 or using another recording app), BCR-GUI will parse filename to extract call data. You can customize the format of the filename being parsed.

Permissions

  • BCR-GUI does not need root access to work.
    It only needs READ access to the directory used by BCR to save recordings. At the first start, it asks you to select your recordings directory (using the well-known Android SAF dialogs) and allow read access to it.

  • It does not need Internet access at all.
    NOTE: this may change in the future if an auto-update feature will be added, but actually the app can't send/receive anything to/from internet.

  • (optional) It needs Contacts permission to update recordings names with contacts or create new contacts for recordings from unknown callers. Feel free to deny this permission: app will remember you how to enable it whthe next time you use a feature that requires it.

What's working/missing?

BCR-GUI is stable and ready for usage!

Working:

  • list: show an ordered list of your call recordings
  • play: play each call recording straight from the list (no external player needed)
  • share: share recording file with other apps, like messaging, email, ...
  • delete: delete recordings
  • manual edit: edit caller name
  • create contact: create a new contact with recording phone number
    (to be used after recording a call from an unknown contact)
  • search number: search an existing contact with recording phone number**
    (to be used if you've already created the contact after recording the call)

Still missing (not ready yet...):

  • edit: allow user to add own data to call recording, like notes, tags, ...
  • filter: be able to filter list by tags, content, date range, length, ...

Other things could be improved and added.
Feel free to share your thoughts!

Install

BCR-GUI is not available in the PlayStore (...yet).

I'll publish it there if its popularity grows but... since BCR is a Magisk module, and it requires some skills to be installed, I'm sure that if you were also able to download & install a simple APK ๐Ÿ˜‰.

Latest version is available here.

Libraries

License

BCR-GUI is licensed under GPLv3 (please see LICENSE file).

bcr-gui's People

Contributors

alirezaparsi avatar dependabot[bot] avatar huangsmith avatar ngocanhtve avatar nicorac avatar upbox-org avatar xfox20 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

bcr-gui's Issues

Audio playback takes a long time to start

Describe the bug
If the audio time is more than 30 minutes, then BCR-GUI takes too long to load it. I have a call that lasted about 30 minutes, the BCR-GUI loads it about 15 seconds, which seems to me quite slow. I tested in another application that can play audio (Google Files) and it instantly opens this audio, without delay

To Reproduce
Steps to reproduce the behavior:

  1. Record an audio call longer than 30 minutes
  2. Try opening it in the BCR-GUI
  3. You will notice that audio playback will not start immediately, you will have to wait more than 15 seconds

Expected behavior
Audio playback will start immediately without waiting

Screenshots
Not required

Versions (please complete the following information):

  • BCR-GUI version: 0.0.19
  • Device: Xiaomi Redmi Note 5
  • Android version: Android 13

Material You support

Hi! Thanks for this app, it's very useful!

One thing I would like to request is dynamic colors support to accommodate Material You theming. This helps the app to integrate better with the overall system design.

Translate the app ๐ŸŒ

Intro

BCR-GUI now supports translations.

You could help translating it in your language in 2 ways:

  • use Weblate online translation service
  • edit source files directly

Weblate

BCR-GUI has a page on Weblate: https://hosted.weblate.org/projects/bcr-gui/app/

If you'd like to translate in your language, drop a message in this issue specifying the culture code (i.e. en-US) you'd like to translate to and I'll add that language to the project.

When your work is complete, I'll release an update with the new translation.

Direct sources edit

Translation files are contained in /src/assets/i18n directory; it currently contains en-US and it-IT cultures.

To help translating you should:

  1. put a message in this issue to notify anyone you're going to translate to a specific culture (and avoid more than one person work on the same one)
  2. fork the repo (or open it online here)
  3. copy the reference language file en-US.json to a new filename based on culture you're goind to create (see the README.md file contained in i18n directory)
  4. translate each item
  5. open a PR to let me integrate your changes...

Thanks in advance for your help, you'll be mentioned in application About page (if you like it ๐Ÿ˜‰).

Online sources edit

If you have a Github account, you can also edit sources within your browser, thanks to github.dev.

  • fork the repository
  • go to your fork home page
  • press . key to open the online editor (very similar to VSCode)
  • create the new language file (see the instructions above)
  • commit your changes and open a PR

Add ColorOS Call Recorder Support

Hi Developer.
I've just known the BCR-GUI have supported Huawei Call Recorder's File Pattern.
Here's are the ColorOS's one: (MP3 file format)
^{contact_name}-{date:year}{date:month}{date:day}{date:hours}{date:minutes}
The only difference is this placeholder {date:year} should be 2 digits instead of 4. (I wonder if that works without correction)
Thanks!

Question on permissions

My scanner just got additional checks implemented, and immediately reported for today's update of your app:

! repo/com.github.nicorac.bcrgui_262656.apk declares flag(s): usesCleartextTraffic
! repo/com.github.nicorac.bcrgui_262656.apk declares risky permission(s): android.permission.READ_EXTERNAL_STORAGE android.permission.READ_CONTACTS android.permission.WRITE_CONTACTS

Could you please clarify what those are needed for?

  • android:usesCleartextTraffic: your app doesn't even request INTERNET, so what cleartext traffic is needed?
  • minimum Android version to use your app is Android 5.1, which has SAF (Storage Access Framework) available to access storage. Do you really need READ_EXTERNAL_STORAGE then, and what for?
  • This is a call recorder GUI, so I get the READ_CONTACTS (for showing contact details along the recordings which probably only have the phone number associated). But what for do you need to write contacts?

Thanks in advance for clarification!

[Feature Request] dark / black mode

Hey, your app already looks nice and works for me.
It is already an added value even when some basic functions are missing. I look forward to future updates. Thanks for developing!

However, my first thought when using your app was: "How do I turn on dark mode? ๐Ÿ˜I would really like a dark mode. ๐Ÿ˜Š
The best thing would be to have a pitch-black theme option for OLED screens.

Edit: I realise there are clearly more important things to address first. I just wanted to register this to add to what you're planning. โœŒ๏ธ

Not accepting file output format used by bcr app

Describe the bug
I'm using the following in brc for file output format, based in bcr wiki
{date:yyyy-MM-dd @ h.mm a}[{direction}|][sim{sim_slot}|][{phone_number}|][[{contact_name}|{caller_name}|{call_log_name}]|]

When I enter this into bcr-gui, I get the following error in red letters:
Invalid regular expression: /{date:yyyy-MM-dd @ h.mm a}[(?in|out|conference)|][sim(?<sim_slot>\d+)|][(?<phone_number>[\d+- ]+|unknown)|][[(?<caller_name>.)|(?<caller_name>.)|(?<caller_name>.*)]|]/: Unmatched ')'

To Reproduce
Steps to reproduce the behavior:

  1. Go to bcr app, open
  2. Click on output, edit format, enter desired format, click ok
  3. Rename files in bcr folder manually based in new format as suggested in bcr guide
  4. Open bcr-gui, click edit next to "fire name pattern" and enter same format used in bcr app
  5. Get error message
  6. Files in bcr-gui all show a "unknown"

Expected behavior
Bcr-gui should accept the pattern and identify the files

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

Versions (please complete the following information):

  • BCR-GUI version: [1.3.0]
  • BCR 1.59
  • Device: poco f3
  • Android version: crdroid A13

Support custom filename format

Edit: related to custom file format

I'm using right to left language on my phone to save my contacts, and I can't see any name on the records
Screenshot_20230826_201806_BCR Gui.png

play button

1/ play button is too small, pls make it bigger or simple remove seek buttons, no need it at all.
2/ why green/white? better use system colors i think.
thanks

Bug: always forcing 12h time format

Even though time in metadata files is in 24h format, bcr-gui will show it in 12h format.

Please add an option to change it, or better yet default the time format to the one used system wide.

Delete all, except

Sometimes you have too many recording from people and you want to delete them but there is that one person that you want to keep your recording, could you add an option to delete all recording, and you will have an option to choose which people's recording to delete(all recording of them)

create and edit json metadata file

Hi @nicorac,
Your bcr-gui also works perfectly with other call recorders, such as Huawei Call Recorder Service.
Unfortunately, this call recorder cannot create metadata file. Would it be possible to implement this feature in bcr-gui and allow creating the metadata file and editing comments?
That would be great!
Thank you very much!

Best regards
Cavediver

brc-gui_dark_new

Template for Call Recorder app (com.github.axet.callrecorder) from F-Droid app store

Hello @nicorac,

First, thanks for your app, it is welcome for this accessibility issue.

Is your feature request related to a problem? Please describe.
I have the Call Recorder app (com.github.axet.callrecorder) from the F-Droid app store, and already have hundreds of phone calls saved with a specific pattern that I can't match with the JS regexp placeholders available in your app. I know it's a bit lazy not renaming all my files to one of the preconfigured templates of the bcr-gui app but maybe there is a solution in between.

Here are three examples for my naming pattern:

20200101T010101 โ†‘ +33611111111 (Mum).ogg
20200102T020202 โ†“ +262622222222 (John Smith).ogg
20200103T030303 โ†“ +33612345678 (0612345678).ogg

I tried these rexexp, none worked:

^{date:year}{date:month}{date:day}T{date:hours}{date:minutes}{date:seconds} [โ†‘โ†“] {phone_number} {contact_name}
^{date:year}{date:month}{date:day}T{date:hours}{date:minutes}{date:seconds} {*} {phone_number} {contact_name}

Have I did something wrong ? Please guide me.
Otherwise is it possible that the special charaters are messing with the regexp ?
Thank you in advance !

Versioning issue

Looks like you forget to increase versionCode properly, which should be done with each release (as Android uses that to tell versions apart; it only considers an APK to be an update if it has a higher versionCode than the installed app). Can you please take care for that with future releases? Thanks in advance!

starting bcr-gui kills other sound

i think the supposed action should be bcr-gui stops other playback when it itself plays some recording back. instead it stops other playback already when being opened.
android 13/LOS20/Musicolet

RTL problem with persian language.

As you know persian and arabic are RTL language and when I use persian the text format was broken.

also i wanna update some parts in translate if you dont mind ( some miss understanding haappend in translation for one or two text)

update : i updated persian translate for easier use add update with bug fix pls thanks for your project and great work

White screen

thank you for this amazing app

just one nagging. when i open app there's a quick succession of screen colors : grey - white - then app opens in dark mode

question: how does app changed calendar used based on language

sorry if this is not an issue but this repo doesn't have discussions section so I had to do it this way.

this may sound stupid but I have this app installed and I have put my phone lang to Persian instead of english.

I saw that this causes this app to use Jalali calendar used in Iran instead of Gregorian calendar.
and it does this automatically ( changes dates of call to jalali and back)

what setting is used in this app that does this or is it from android itself that I never saw before ?

Forward/reverse skip and scrolling does not work as intended in v0.0.16

the enhancement with the forward/reverse buttons is not working as intended. it does not forward at all and rewind mostly skips to the start or out of the player to the list.

also, this version and bcr-gui-0.0.15-release.apk have a slider on the right side that does not scroll to the very buttom of the list. i can barely delete the first entry because the trash icon is almost hidden. this was better in bcr-gui-0.0.14-release.apk without slider.

nasty thing is now i am trying to downgrade and bcr-gui-0.0.14 complaints about missing json metadata file and wont read any of the audio files .

so i reverted to bcr-gui-0.0.15. this one does not complain but it does not always show the trash icon.

Entries not deleted when JSON file is missing

I have a bunch of recorded calls that where made before BCR included support for JSON files, so when I try to delete them from the list it deletes the files from the file system but it doesn't delete the entries on the app. This doesn't happen with recordings that have a JSON file associated to them. In that case I can delete them and they get deleted from both the filesystem and the list on the BCR-GUI app

Recordings encoding issue

I am unable to load the recordings as the app seems to expect filenames to contain only Latin1 charset.

Screenshot_20230823-220641

Using too many voice recordings

The application does not cope well (it takes a long time to load) if more than 500 audio recordings are stored in the call directory. On my old smartphone, it takes about 30 seconds.

I suggest adding a loading animation meaning that the application loads information about calls. At the beginning, without this animation, I was confused and I thought that the application was not working at all, but after waiting more than 30 seconds, I realized that it had been loading all this time.
Also, I suggest making an optimization that loads this information, I think it's not worth reading all existing audio recordings at once.

Does not look in subdirectories

With BCR you can specify in the filename template subdirectories, and so calls can be saved in different subdirectories. This GUI looks only at the top level folder, and doesn't show calls present in subdirectories. There should be an option to allow the recursive scan of subdirectories too.
Thanks

Add support for GrapheneOS call recorder (was: File Name Parsing issue)

Describe the bug
I am having a hard time with the filename parser recognizing the file name "CallRecord_20230619-121746_+12192826655.m4a"

Here are my attempts

/CallRecord_\{date\}(?:.+)\{phone_number\}/

CallRecord_{date}(?:.+){phone_number}

CallRecord_{date}_{phone_number}

/CallRecord_\{date\}(?:.+)\{phone_number\}\.m4a/

CallRecord_{date}(?:.+){phone_number}\.m4a

CallRecord_{date}(?:.+){phone_number}.m4a

CallRecord_{date}_{phone_number}\.m4a

CallRecord_{date}_{phone_number}.m4a

any thoughts?

Version

  • BCR-GUI version: 0.0.23

AMR-WB files are not displayed in the application

Describe the bug
AMR-WB files in the .awb file format are not displayed in the graphical user interface (GUI), even when they exist in the same folder as other recordings.

Expected behavior
The application should display all files that adhere to the correct name format before the extension. Files not yet recognized by BCR-GUI should appear in the list with a label indicating โ€˜Type: Unknownโ€™ instead of being ignored. Implementing this feature would prevent issues with new formats in the future.

Versions (please complete the following information):

  • BCR-GUI version: 1.6.0
  • Device: Pixel 3
  • Android version: LineageOS 21

[enhancement]: forward+rewind buttons

having 20min+ recordings it is difficult to repeat the last sentence you just heard for better understanding. so two more buttons with fixed or variable times to forward+rewind audio would be great. thank you.

On GrapheneOS AMR files are not supported and detected

Describe the bug
If on GrapheneOS in the voice recording I select AMR-WB as the "Audio output format" the files that are generated by the recording (files .amr) are not recognized by the app (even if they correctly match the regex) and therefore they are not displayed on the list of recordings (Home).

To Reproduce
Steps to reproduce the behavior:

  1. Open the app
  2. Select a folder containing recordings from GraoheneOS that are in .amr format
  3. The home screen doesn't detect any of them

Expected behavior
The files should be displayed and be able to be reproduced just like AAC or other audio format file

Versions (please complete the following information):

  • BCR-GUI version: 1.5.0
  • Device: Google Pixel 7
  • Android version: 14

Localization

Is your feature request related to a problem? Please describe.
strings.xml not found for translation - like other projects

Describe the solution you'd like
Create one, please!

Describe alternatives you've considered
Use hosted.weblate or crowdin

Additional context
Great app btw, works well with the built-in call recording feature in Android's default AOSP Phone app, Crdroid ROM..

Color scheme problem

Hello. Thank you very much for this beautiful program. If you use weblate, I will be happy to translate it into Turkish. My eyes get very tired due to this color scheme in both dark and light modes. Is there any chance we can find a solution to this? For example, can the text in dark mode be white rather than green? Likewise, can the background be white instead of green in bright mode?

Edit Recording ->create new contact-> select adress book

its not related to a specific OS, i think.

would be nice to select an adress book where the new contact is to be stored.

bcr-gui selects phone storage by default. if a user is not using phone storage, but i.e. nextcloud storage instead, there is no option to store the contact there. In LOS the user cannot change the adress book for storage after a contact is stored in phone adress book.

so the user is forced to create a new contact in another phone book and copy/paste the data there and delete the older entry afterwards.

dont know about alternatives.

Icon

Add material themed app icon

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.