Ammar64 / Sharing

Share files and apps on android to other devices using browser
GNU Affero General Public License v3.0
85 stars 8 forks source link

Sent from a pc #7

Closed freeburn12 closed 3 months ago

freeburn12 commented 3 months ago

When you choose to send from a pc . In the app it doesn't work, the file stopped and non completely.

Test

Ammar64 commented 3 months ago

I think this might be permission issue please check that you've granted storage permission to the app

freeburn12 commented 3 months ago

Precisely the app doesn't ask for access to storage, it's very good for privacy fdroid but maybe there is another way ?

Ammar64 commented 3 months ago

The app doesn't send your data to anywhere so your privacy is ok.

The app is programmed to check for storage permission when it run if it's not granted it asks for it. what is your android version ?

Ammar64 commented 3 months ago

I tested the beta version on with my PC and sending from PC works. We need to reproduce your problem to solve it. Can you tell me what browser you were using on PC and what is your PC operating system

freeburn12 commented 3 months ago

I tested with several browsers (Chrome, Firefox, Librewolf, Floorp) and OS win 10 x64 -x86 Ltsc and it doesn't work for me.

I think it's not a browser or OS problem, it comes from a blocking of the application.

Which browser and OS do you use for test ?

Ammar64 commented 3 months ago

I use firefox and win 10 x64

Ammar64 commented 3 months ago

Try Ctrl + shift + R to hard reload the webpage in the browser. May be the browser is using an old cached JS code from previous app version. I don't remember in which version I disabled caching

Ammar64 commented 3 months ago

Btw does it work on phone browser ?

What android version do you use on the phone receiving the files

freeburn12 commented 3 months ago

I just tested with several android phone(13 on lineage Os, and 10 normal ) and another Dns... and the same it doesn't work.

By The Browser is good for send but in the application it's stopped. I don't understand. And you what your android test version ?

Ammar64 commented 3 months ago

My Android version is 14 Can you please check if files are actually sent in the Files-Center/ folder in your internal storage may be it's just a UI issue.

I just tested with several android phone(13 on lineage Os, and 10 normal )

By this did you mean that you tested sending from those phones on the browser or you tested the app on those phones ?

freeburn12 commented 3 months ago

Yes i tested both , on the browser and the app and nothing works . I don't know where is the files-center /folder in the internal storage, it is not root.

Ammar64 commented 3 months ago

the Files-Center/ folder is here You don't need root the app doesn't call su at all

freeburn12 commented 3 months ago

I don't have this folder, the app has not created this folder for me. Maybe the problem comes from there.

I tested to create it but nothing happens either.

Ammar64 commented 3 months ago

It's surely a permission issue there is a special permission called All files access permission it is on android 11+ make sure you've granted it to the app from settings this permission doesn't exist in the app info page.

Search in settings for "All files access"

Ammar64 commented 3 months ago

If you are using android 10 or lower make sure permission is granted in the app info page

if problem persists download App Manager from F-Droid and open it then look for sharing tap on permissions tab and make sure the WRITE_EXTERNAL_SORAGE permission is granted (you need root or adb mode)

freeburn12 commented 3 months ago

Everything seems ok on this side

2024-08-02_12-28-48_2842 2024-08-02_12-28-31_6793

Ammar64 commented 3 months ago

I don't know why I don't know how but I changed this piece of code from this

public static void createAppDirs() {
        assert Consts.filesCenterDir.mkdirs();
        assert Consts.appsDir.mkdir();
        assert Consts.imagesDir.mkdir();
        assert Consts.audioDir.mkdir();
        assert Consts.filesDir.mkdir();
        assert Consts.videosDir.mkdir();
        assert Consts.documentsDir.mkdir();
    }

to this

 public static void createAppDirs() throws IOException {
        boolean dirsMade = true;
        dirsMade &= Consts.filesCenterDir.mkdirs();
        dirsMade &= Consts.appsDir.mkdir();
        dirsMade &= Consts.imagesDir.mkdir();
        dirsMade &= Consts.audioDir.mkdir();
        dirsMade &= Consts.filesDir.mkdir();
        dirsMade &= Consts.videosDir.mkdir();
        dirsMade &= Consts.documentsDir.mkdir();

        if(!dirsMade) throw new IOException("Failed to make app directories");
    }

And it magically worked for me app-release-signed.zip Rename the file from app-release-signed.zip to app-release-signed.apk github doesn't support attaching apk files it is signed with the same key as 1.1 you already have so you can just update

Ammar64 commented 3 months ago

The file I have attached corresponds to this commit in case you want to verify the file is built from source. reproducible build is enabled.

Ammar64 commented 3 months ago

I now know why. java removes assert statements in production byte code 😑.

Thank you for your patience with me.

freeburn12 commented 3 months ago

Yeahhh Good job, Little by little we get there 😉 I'm like as your beta tester

It works, the file Files-Center is well created and send service works 👍 Thanks for your enthousiaste and transparency

An idea for improvement: You could add a shortcut in the app that points directly to the files-center folder to avoid going to look for it --

Or better yet, point directly to the folder where the received file is located when you click on it, because this would avoid wondering what type of file it is (for a novice user) and therefore without having to search for it depending on whether it is an audio, image, video, apps... 😊

freeburn12 commented 3 months ago

How do you build app ? With Android studio , IntelliJ Idea, Eclpse or another... ?

Ammar64 commented 3 months ago

I use android studio to write code and xml I build the app from command line using

./gradlew assembleRelease

then sign it with apksigner.

Ammar64 commented 3 months ago

I tried to make so clicking on the file in app opens a file explorer in that folder but android makes it too hard to do such a thing

Ammar64 commented 3 months ago

Thank you for your support 😃