Giter Club home page Giter Club logo

android's Introduction

MEGA Android Client

A fully-featured client to access your Cloud Storage provided by MEGA.

This document will guide you to build the application on a Linux/MacOS machine with Android Studio.

1. Setup development environment

2. Build & Run the application

  1. Get the source code.
git clone --recursive https://github.com/meganz/android.git

3. NDK Configuration

3.1 Linux

Install in the system the Android NDK 21 (latest version tested: NDK r21d, version number: 21.3.6528147).

Export NDK_ROOT variable or create a symbolic link at ${HOME}/android-ndk to point to your Android NDK installation path.

export NDK_ROOT=/path/to/ndk

ln -s /path/to/ndk ${HOME}/android-ndk

3.2 MacOS

Install NDK r21d by Android Studio following these instructions (pay attention to the bottom-right Show Package Details checkbox to display the available versions. Latest version tested: NDK r21d, version number: 21.3.6528147)

Export NDK_ROOT variable or create a symbolic link at ${HOME}/android-ndk to point to your Android NDK installation path.

Default macOS path: export NDK_ROOT="/Users/${USER}/Library/Android/sdk/ndk/21.3.6528147"

ln -s /path/to/ndk ${HOME}/android-ndk

4. ANDROID_HOME Configuration

4.1 Linux

Export ANDROID_HOME variable or create a symbolic link at ${HOME}/android-sdk to point to your Android SDK installation path.

export ANDROID_HOME=/path/to/sdk

ln -s /path/to/sdk ${HOME}/android-sdk

4.2 MacOS

Export ANDROID_HOME variable or create a symbolic link at ${HOME}/android-sdk to point to your Android SDK installation path.

Default macOS path: export ANDROID_HOME="/Users/${USER}/Library/Android/sdk/")

ln -s /path/to/sdk ${HOME}/android-sdk

5. JAVA_HOME Configuration

5.1 Linux

Export JAVA_HOME variable or create a symbolic link at ${HOME}/android-java to point to your Java installation path.

You can use the path in Android Studio, which you can find in Preferences > Build, Execution, Deployment > Build Tools > Gradle > Gradle JDK (default)

export JAVA_HOME=/path/to/jdk

ln -s /path/to/jdk ${HOME}/android-java

5.2 MacOS

Export JAVA_HOME variable or create a symbolic link at ${HOME}/android-java to point to your Java installation path.

You can use the path in Android Studio, which you can find in Preferences > Build, Execution, Deployment > Build Tools > Gradle > Gradle JDK (default)

Default macOS path: export JAVA_HOME="/Applications/Android Studio.app/Contents/jre/Contents/Home")

ln -s /path/to/jdk ${HOME}/android-java

6. Download WEBRTC files

  1. Download the link https://mega.nz/file/F0YThaQR#FgoSW-XuxwHVr-9SNmVcP_JWG8B0Q6ogT9By3fEiEDc, uncompress it and put the folder webrtc in the path sdk/src/main/jni/megachat/.Be mindful that the download link of webrtc may varies over time, please keep it in line with the one written in build.sh

7. Prerequisites of running the build script

7.1 Linux

Before running the SDK building script, install the required packages. For example for Ubuntu or other Debian-based distro:

sudo apt install build-essential swig automake libtool autoconf cmake ninja-build

ATTENTION: After upgrading ExoPlayer to 2.18.1, we need to use CMake version 3.22.1

Then install CMake version 3.22.1 in Android Studio > Tools > SDK Manager > SDK Tools > CMake.

After installation, add below line in ~/.bashrc

export PATH="/home/$USER/Android/Sdk/cmake/3.22.1/bin:$PATH"

You will need to source your ~/.bashrc or logout/login (or restart the terminal) for the changes to take effect. To source your ~/.bashrc, simply type:

source ~/.bashrc

7.2 MacOS

Before running the SDK building script, install the required dependencies via HomeBrew:

Except below tools, please do not use HomeBrew to install other tools, according to SysAdmin's advice.

brew install bash gnu-sed gnu-tar autoconf automake cmake coreutils libtool swig wget xz python3

Then reboot MacOS - to ensure newly installed latest bash (v5.x) overrides default v3.x in PATH

Then edit PATH env (Please make sure the gnu paths are setup in front of $PATH):

  • For Intel chip, add below lines in ~/.zshrc

export PATH="/usr/local/opt/gnu-tar/libexec/gnubin:$PATH"
export PATH="/usr/local/opt/gnu-sed/libexec/gnubin:$PATH"

  • For Apple chip, add below lines in ~/.zshrc

export PATH="/opt/homebrew/opt/gnu-tar/libexec/gnubin:$PATH"
export PATH="/opt/homebrew/opt/gnu-sed/libexec/gnubin:$PATH"

ln -s /opt/homebrew/bin/python3 /opt/homebrew/bin/python

ATTENTION: After upgrading ExoPlayer to 2.18.1, we need to use CMake version 3.22.1

Then install CMake version 3.22.1 in Android Studio > Tools > SDK Manager > SDK Tools > CMake.

You have to tick checkbox 'Show Package Details' to display this specific version. After installation, add below line in ~/.zshrc

export PATH="/Users/${USER}/Library/Android/sdk/cmake/3.22.1/bin:$PATH"

8. Running the Build Script

Build SDK by running ./build.sh all at sdk/src/main/jni/. You could also run ./build.sh clean to clean the previous configuration.

IMPORTANT: check that the build process finished successfully, it should finish with the Task finished OK message. Otherwise, modify LOG_FILE variable in build.sh from /dev/null to a certain text file and run ./build.sh all again for viewing the build errors.

In case of an error (seen in the log file mentioned) due to licenses not accepted, you can read and accept the licenses with the sdkmanager command-line tool (if you downloaded them)

/path-to-cmdline-tools/bin/sdkmanager --sdk_root=$ANDROID_HOME --licenses

9. Download Required Files

Download the link https://mega.nz/#!1tcl3CrL!i23zkmx7ibnYy34HQdsOOFAPOqQuTo1-2iZ5qFlU7-k, uncompress it and put the folders debug and release in the path app/src/.

10. Disable pre-built SDK

Open buildSrc/src/main/kotlin/mega/privacy/android/build/Util.kt, change method shouldUsePrebuiltSdk() to below.

fun shouldUsePrebuiltSdk(): Boolean = false
//        System.getenv("USE_PREBUILT_SDK")?.let { it != "false" } ?: true

Open settings.gradle.kts, change method shouldUsePrebuiltSdk() to below:

fun shouldUsePrebuiltSdk(): Boolean = false
//        System.getenv("USE_PREBUILT_SDK")?.let { it != "false" } ?: true

11. Build mobile analytics library locally

Note: You need to occasionally redo this section to make sure latest analytics library is used.

  1. Download and build Mobile Analytics source code.

    git clone --recursive https://github.com/meganz/mobile-analytics.git
    cd mobile-analytics
    git checkout main
    ./gradlew assembleRelease
  2. Copy below generated libraries to root of MEGA code

    • shared/build/outputs/aar/shared-release.aar
    • analytics-core/build/outputs/aar/analytics-core-release.aar
    • analytics-annotations/build/outputs/aar/analytics-annotations-release.aar
  3. Modify MEGA code to depend on local AAR files

    1. Search implementation(lib.mega.analytics) in whole project, and replace all occurrences with below code. Note you may need to add a .. to the path if the build.gradle.kts is in a subproject.
      //    implementation(lib.mega.analytics)
          implementation(files("../shared-release.aar"))
          implementation(files("../analytics-core-release.aar"))
          implementation(files("../analytics-annotations-release.aar")) 

12. Disable library dependencies

  1. in root build.gradle.kts, comment out below codes.
    id("mega.android.release")
  2. in settings.gradle.kts, comment out below code
     maven {
         url =
             uri("${System.getenv("ARTIFACTORY_BASE_URL")}/artifactory/mega-gradle/megagradle")
     }
    and
    resolutionStrategy {
        eachPlugin {
            if (requested.id.id == "mega.android.release") {
                useModule("mega.privacy:megagradle:${requested.version}")
            }
        }
    }

13. Run the project

Open the project with Android Studio, let it build the project and hit Run.

If the build script fails to detect cmake when building ffmpeg extension on a mac
  1. In Android studio, open the SDK manager (Or through Settings>Appearance & Behaviour>System Settings>Android SDK)
  2. Go to the SDK Tools tab
  3. Check the "Show package details" box
  4. Expand the CMake section in the list
  5. Select 3.22.1
  6. Click "OK"
  7. Add the following to your PATH: export PATH="/Users/{USERNAME}/Library/Android/sdk/cmake/3.22.1/bin:$PATH"
  8. Retry the build

Notice

To use the geolocation feature you need a Google Maps API key:

  1. To get one, follow the directions here: https://developers.google.com/maps/documentation/android/signup.

  2. Once you have your key, replace the "google_maps_key" string in these files: app/src/debug/res/values/google_maps_api.xml and app/src/release/res/values/google_maps_api.xml.

android's People

Contributors

akiriharu avatar andy-w-nz avatar ash-mega avatar atiqaraj avatar carolzato avatar chrisli-mega avatar dk-mg avatar domeganz avatar es-mega avatar gmjmega avatar gnzlt avatar javiergm1983 avatar javiserrano avatar joe7550 avatar jokejiao avatar jraragon avatar jtameganz avatar kevinsun0 avatar kh-mega avatar lhmega avatar mega-bt avatar megasq avatar mpsougandh avatar pauminku avatar piasy avatar raquelgc6 avatar robinshi-mega avatar rsomega avatar yenel avatar ygaoy 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  avatar  avatar  avatar  avatar

Watchers

 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  avatar  avatar  avatar  avatar

android's Issues

F-Droid?

Is it possible for a version of this app to be created that runs on F-Droid for people who don't have the Google Play Services installed?

Some wishes

  1. Don't work feedback

screenshot_20180411-204950
2) can you add support disaply 3 columns, not 2
3) can you add support play gif files

Permission Denial: opening provider com.android.externalstorage.ExternalStorageProvider

Him,
mega client can't upload photos with function camera upload.

Device: Sony Xperia Z1C rooted
Android: Stock 5.1.1
Mega client: 3.0.12.3
Account: free

02-07 13:21:53.881: I/Timeline(2101): Timeline: Activity_launch_request id:mega.privacy.android.app time:41227726
02-07 13:21:53.882: I/ActivityManager(1449): START u0 {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=mega.privacy.android.app/.LauncherActivity bnds=[360,938][528,1134]} from uid 10080 on display 0
02-07 13:21:53.911: V/WindowManager(1449): addAppToken: AppWindowToken{1a9196af token=Token{33b1be8e ActivityRecord{4222e89 u0 mega.privacy.android.app/.LauncherActivity t1128}}} to stack=1 task=1128 at 0
02-07 13:21:53.930: V/WindowManager(1449): Adding window Window{2237aca7 u0 Starting mega.privacy.android.app} at 12 of 18 (after Window{2b1104f5 u0 com.android.settings/com.android.settings.SubSettings})
02-07 13:21:53.973: I/ActivityManager(1449): Start proc 25788:mega.privacy.android.app/u0a212 for activity mega.privacy.android.app/.LauncherActivity
02-07 13:21:54.360: D/MegaApplication(25788): Database path: /data/data/mega.privacy.android.app/
02-07 13:21:54.391: D/MegaApplication(25788): Database path: /data/data/mega.privacy.android.app/
02-07 13:21:54.495: I/Timeline(25788): Timeline: Activity_launch_request id:mega.privacy.android.app time:41228340
02-07 13:21:54.496: I/ActivityManager(1449): START u0 {cmp=mega.privacy.android.app/.lollipop.ManagerActivityLollipop} from uid 10212 on display 0
02-07 13:21:54.501: V/WindowManager(1449): addAppToken: AppWindowToken{13623aec token=Token{adb899f ActivityRecord{1250e73e u0 mega.privacy.android.app/.lollipop.ManagerActivityLollipop t1128}}} to stack=1 task=1128 at 1
02-07 13:21:54.501: V/WindowManager(1449): Based on layer: Adding window Window{2237aca7 u0 Starting mega.privacy.android.app} at 12 of 18
02-07 13:21:54.855: I/Timeline(25788): Timeline: Activity_launch_request id:mega.privacy.android.app time:41228700
02-07 13:21:54.855: I/ActivityManager(1449): START u0 {flg=0x4000000 cmp=mega.privacy.android.app/.lollipop.LoginActivityLollipop (has extras)} from uid 10212 on display 0
02-07 13:21:54.858: V/WindowManager(1449): addAppToken: AppWindowToken{2580a016 token=Token{3f110131 ActivityRecord{24ae19d8 u0 mega.privacy.android.app/.lollipop.LoginActivityLollipop t1128}}} to stack=1 task=1128 at 2
02-07 13:21:54.858: V/WindowManager(1449): Based on layer: Adding window Window{2237aca7 u0 Starting mega.privacy.android.app} at 12 of 18
02-07 13:21:55.082: V/WindowManager(1449): Adding window Window{17dea7a2 u0 mega.privacy.android.app/mega.privacy.android.app.lollipop.LoginActivityLollipop} at 12 of 19 (before Window{2237aca7 u0 Starting mega.privacy.android.app})
02-07 13:21:55.288: I/ActivityManager(1449): Displayed mega.privacy.android.app/.lollipop.LoginActivityLollipop: +425ms (total +1s362ms)
02-07 13:21:55.288: I/Timeline(1449): Timeline: Activity_windows_visible id: ActivityRecord{24ae19d8 u0 mega.privacy.android.app/.lollipop.LoginActivityLollipop t1128} time:41229133
02-07 13:21:57.243: I/Timeline(25788): Timeline: Activity_launch_request id:mega.privacy.android.app time:41231087
02-07 13:21:57.243: I/ActivityManager(1449): START u0 {flg=0x4000000 cmp=mega.privacy.android.app/.lollipop.ManagerActivityLollipop} from uid 10212 on display 0
02-07 13:21:57.246: V/WindowManager(1449): addAppToken: AppWindowToken{30ea2f25 token=Token{39e0371c ActivityRecord{3fc0188f u0 mega.privacy.android.app/.lollipop.ManagerActivityLollipop t1128}}} to stack=1 task=1128 at 3
02-07 13:21:57.675: V/WindowManager(1449): Adding window Window{2fff3ac6 u0 mega.privacy.android.app/mega.privacy.android.app.lollipop.ManagerActivityLollipop} at 13 of 19 (after Window{17dea7a2 u0 mega.privacy.android.app/mega.privacy.android.app.lollipop.LoginActivityLollipop})
02-07 13:21:58.056: I/ActivityManager(1449): Displayed mega.privacy.android.app/.lollipop.ManagerActivityLollipop: +803ms
02-07 13:21:58.430: I/Timeline(1449): Timeline: Activity_windows_visible id: ActivityRecord{3fc0188f u0 mega.privacy.android.app/.lollipop.ManagerActivityLollipop t1128} time:41232275
02-07 13:21:58.762: I/Finsky(25843): [13333] com.google.android.finsky.billing.iab.s.a(5212): mega.privacy.android.app: Account determined from installer data - [cAVBs_L-M7D2wdlKaGOT0ww1gU8]
02-07 13:21:58.763: D/IabHelper(25788): In-app billing version 3 supported for mega.privacy.android.app
02-07 13:21:58.816: I/Finsky(25843): [13334] com.google.android.finsky.billing.iab.s.a(5212): mega.privacy.android.app: Account determined from installer data - [cAVBs_L-M7D2wdlKaGOT0ww1gU8]
02-07 13:21:58.818: D/IabHelper(25788): Package name: mega.privacy.android.app
02-07 13:21:58.820: I/Finsky(25843): [13361] com.google.android.finsky.billing.iab.s.a(5212): mega.privacy.android.app: Account determined from installer data - [cAVBs_L-M7D2wdlKaGOT0ww1gU8]
02-07 13:21:58.821: D/IabHelper(25788): Package name: mega.privacy.android.app
02-07 13:21:58.823: I/Finsky(25843): [13334] com.google.android.finsky.billing.iab.s.a(5212): mega.privacy.android.app: Account determined from installer data - [cAVBs_L-M7D2wdlKaGOT0ww1gU8]
02-07 13:22:17.049: D/WifiService(1449): acquireWifiLockLocked: WifiLock{MegaDownloadServiceWifiLock type=3 binder=android.os.BinderProxy@1a986207}
02-07 13:22:17.068: W/ActivityManager(1449): Permission Denial: opening provider com.android.externalstorage.ExternalStorageProvider from ProcessRecord{9b188fa 25788:mega.privacy.android.app/u0a212} (pid=25788, uid=10212) requires android.permission.MANAGE_DOCUMENTS or android.permission.MANAGE_DOCUMENTS
02-07 13:22:17.072: W/DocumentFile(25788): Failed query: java.lang.SecurityException: Permission Denial: opening provider com.android.externalstorage.ExternalStorageProvider from ProcessRecord{9b188fa 25788:mega.privacy.android.app/u0a212} (pid=25788, uid=10212) requires android.permission.MANAGE_DOCUMENTS or android.permission.MANAGE_DOCUMENTS
02-07 13:22:17.074: W/ActivityManager(1449): Permission Denial: opening provider com.android.externalstorage.ExternalStorageProvider from ProcessRecord{9b188fa 25788:mega.privacy.android.app/u0a212} (pid=25788, uid=10212) requires android.permission.MANAGE_DOCUMENTS or android.permission.MANAGE_DOCUMENTS
02-07 13:22:17.074: W/DocumentFile(25788): Failed query: java.lang.SecurityException: Permission Denial: opening provider com.android.externalstorage.ExternalStorageProvider from ProcessRecord{9b188fa 25788:mega.privacy.android.app/u0a212} (pid=25788, uid=10212) requires android.permission.MANAGE_DOCUMENTS or android.permission.MANAGE_DOCUMENTS
02-07 13:22:17.090: D/WifiService(1449): releaseWifiLockLocked: WifiLock{MegaDownloadServiceWifiLock type=3 binder=android.os.BinderProxy@1a986207}
02-07 13:22:18.099: D/WifiService(1449): acquireWifiLockLocked: WifiLock{MegaDownloadServiceWifiLock type=3 binder=android.os.BinderProxy@3dc2815d}
02-07 13:22:18.108: W/ActivityManager(1449): Permission Denial: opening provider com.android.externalstorage.ExternalStorageProvider from ProcessRecord{9b188fa 25788:mega.privacy.android.app/u0a212} (pid=25788, uid=10212) requires android.permission.MANAGE_DOCUMENTS or android.permission.MANAGE_DOCUMENTS
02-07 13:22:18.108: W/DocumentFile(25788): Failed query: java.lang.SecurityException: Permission Denial: opening provider com.android.externalstorage.ExternalStorageProvider from ProcessRecord{9b188fa 25788:mega.privacy.android.app/u0a212} (pid=25788, uid=10212) requires android.permission.MANAGE_DOCUMENTS or android.permission.MANAGE_DOCUMENTS
02-07 13:22:18.109: W/ActivityManager(1449): Permission Denial: opening provider com.android.externalstorage.ExternalStorageProvider from ProcessRecord{9b188fa 25788:mega.privacy.android.app/u0a212} (pid=25788, uid=10212) requires android.permission.MANAGE_DOCUMENTS or android.permission.MANAGE_DOCUMENTS
02-07 13:22:18.110: W/DocumentFile(25788): Failed query: java.lang.SecurityException: Permission Denial: opening provider com.android.externalstorage.ExternalStorageProvider from ProcessRecord{9b188fa 25788:mega.privacy.android.app/u0a212} (pid=25788, uid=10212) requires android.permission.MANAGE_DOCUMENTS or android.permission.MANAGE_DOCUMENTS
02-07 13:22:18.121: D/WifiService(1449): releaseWifiLockLocked: WifiLock{MegaDownloadServiceWifiLock type=3 binder=android.os.BinderProxy@3dc2815d}
02-07 13:22:27.322: D/WifiService(1449): acquireWifiLockLocked: WifiLock{MegaDownloadServiceWifiLock type=3 binder=android.os.BinderProxy@bb7daf7}
02-07 13:22:27.327: W/ActivityManager(1449): Permission Denial: opening provider com.android.externalstorage.ExternalStorageProvider from ProcessRecord{9b188fa 25788:mega.privacy.android.app/u0a212} (pid=25788, uid=10212) requires android.permission.MANAGE_DOCUMENTS or android.permission.MANAGE_DOCUMENTS
02-07 13:22:27.328: W/DocumentFile(25788): Failed query: java.lang.SecurityException: Permission Denial: opening provider com.android.externalstorage.ExternalStorageProvider from ProcessRecord{9b188fa 25788:mega.privacy.android.app/u0a212} (pid=25788, uid=10212) requires android.permission.MANAGE_DOCUMENTS or android.permission.MANAGE_DOCUMENTS
02-07 13:22:27.329: W/ActivityManager(1449): Permission Denial: opening provider com.android.externalstorage.ExternalStorageProvider from ProcessRecord{9b188fa 25788:mega.privacy.android.app/u0a212} (pid=25788, uid=10212) requires android.permission.MANAGE_DOCUMENTS or android.permission.MANAGE_DOCUMENTS
02-07 13:22:27.329: W/DocumentFile(25788): Failed query: java.lang.SecurityException: Permission Denial: opening provider com.android.externalstorage.ExternalStorageProvider from ProcessRecord{9b188fa 25788:mega.privacy.android.app/u0a212} (pid=25788, uid=10212) requires android.permission.MANAGE_DOCUMENTS or android.permission.MANAGE_DOCUMENTS
02-07 13:22:27.341: D/WifiService(1449): releaseWifiLockLocked: WifiLock{MegaDownloadServiceWifiLock type=3 binder=android.os.BinderProxy@bb7daf7}
02-07 13:22:47.360: W/PackageManager(2118): Failure retrieving resources for mega.privacy.android.app: Resource ID #0x0
02-07 13:23:14.638: W/PackageManager(2118): Failure retrieving resources for mega.privacy.android.app: Resource ID #0x0
02-07 13:23:15.686: W/PackageManager(2118): Failure retrieving resources for mega.privacy.android.app: Resource ID #0x0
02-07 13:23:24.049: I/Timeline(1449): Timeline: Activity_windows_visible id: ActivityRecord{3fc0188f u0 mega.privacy.android.app/.lollipop.ManagerActivityLollipop t1128} time:41317894
02-07 13:24:04.053: W/PackageManager(2118): Failure retrieving resources for mega.privacy.android.app: Resource ID #0x0

Won't Validate Account

Account Validation process returns "incomplete." Account login attempts return "please validate account."

Encryption at rest

Is the Android client storing account data in plain text on the device?

Limited save-as options, when sharing to MEGA (no chat option)

When using MEGA under the save-as, or share-to options from other apps, you are limited to only your folders and folders shared with you; you cannot select a contact, nor an existing chat, with which to share the file. Instead, to accomplish this, you would have to save the file to a location and then add it from the chat view itself.

is free software?

Is this app using any non-free libraries (besides the google-play-wallet)?

"Server received" and "Read receipts" for chat

Just like the Signal Messenger app does it, really helpful to know if once can leave a network area if the "server" has received the message" and then of course, if the recipient has as well when checking in on a conversation.

wont upload photos from external sd

OS: Android 5.1
Phone: SGS4 i9500

When I choose DCIM folder on external sd, the route to DCIM look like "DCIM". If I choose folder on internal sd - the route look like normal "/storage/emulated/0/DCIM".

Build under Windows

Hi there, could you be so kind and add example for Makefile configuration under Windows platform? I have problem with setting NDK_ROOT. To be more specific, I got this error even after setting NDK_ROOT to my NDK location on disk NDK_ROOT=D:/ProgramFiles/Android/sdk/ndk-build

Error:Execution failed for task ':app:cleanMegaSDK'.
> A problem occurred starting process 'command 'make''

download file not found

I use nexus 6, when I download file I can found it on my phone, but connect Mac the file is disappeared, I can't found it even changed the download dir.

ssh-keygen -p # Start the SSH key creation process Enter file in which the key is (/Users/you/.ssh/id_rsa): [Hit enter] Key has comment '/Users/you/.ssh/id_rsa' Enter new passphrase (empty for no passphrase): [Type new passphrase] Enter same passphrase again: [One more time for luck] Your identification has been saved with the new passphrase. If your key already has a passphrase, you will be prompted to enter it before you can change to a new passphrase. Further reading "About SSH" Contact a human Article versions GitHub.com GitHub Enterprise 2.11 GitHub Enterprise 2.10 GitHub Enterprise 2.9 GitHub Enterprise 2.8

Not possible to select multiple items for upload

Problem

When I click on Upload ..., Picture and choose my gallery app (or any other that is shown here), it is not possible to select multiple pictures for upload. That is quite annoying if I wanted to upload more than one picture at once. It is possible to select them from the file system, but for more "unexperienced" users it would be great to select it from the gallery app.

Expected behavior

It should be possible to select multiple pictures for uploading by long pressing them.

Test environment

  • Phone: Fairphone 1U
  • Android 4.2.2
  • Mega Version 3.0.11.2

license of the app

Hi
I have doubts about the license of the app, I want to know if I can make my version of the app with advertising and payment options for other features that do not affect the mega service, just like the apps "ponidroid" and "Autosync for MEGA - MegaSync "which I guess they use the mega sdk

Doesn't synchronize secondary folder

I have enablwd a secondary folder which contains audio files (.wav and .amr).
Despite new files are added to that local folder, the remote one doesn't receive them.
It used to work until few months ago.
Moreover, the client shows a remote secondary folder empty, while the browser from a desktop shows the correct content.

App won't run in background

If the app is not on screen, it will not download the files. e.g., if an another app becomes active or the screen goes off(but not to sleep). I do not believe this is a "background" processing issue in settings because everything is set to allow background processing. If one is trying to download large files it usually quite annoying because one has to monitor the device to make sure it doesn't go to sleep... also, one cannot use it because other apps will cause the client to stop downloading. This is for android 6

Camera Upload Repeatative

There isn't a way to keep camera uploads on without uploading old ones.
Also, if I were to delete the pictures that I no longer want, Mega automatically re-uploads them. Used 3GB on this issue. I don't want it to sync my camera phone on my phone with my account, I just need it to upload one.

How to get or generate the missing files ?

Hi guys
I want to know how to obtain or generate some files that do not appear when cloning the project (due to the .gitignore)

Most of the files are from the MegaChat project but it does not tell me how to generate it either,
help please without that I can not compile the project
there are the files but in c ++ (.h .cpp) but I do not know how to use them or transform them into .java

MegaChatApi.java
MegaChatError.java
MegaChatRequest.java
MegaContactRequest.java
MegaEvent.java
MegaAccountSession.java
MegaChatCall.java
MegaChatError.java
MegaChatMessage.java
MegaChatRequest.java
MegaChatRoom.java
MegaHandleList.java
CameraSyncService.java
MegaUserAlert.java
MegaContactRequest.java
etc

Allow saving multiple files for offline use at a time.

It's possible to save an entire folder for offline use, and it is possible to save a single file for offline use by selecting "Folder / File info" -> "Available offline". However, it's really painful to select a couple of files within a folder for offline use. Would you be able to make that option available via the menu when several files inside of a folder are selected?

I.e., the functionality I'm anticipating would be the following: Navigation to a folder, select a couple of files, click on the drop-down menu with "Clear selection", "Send to", "Move to rubbish bin", and in this menu select a menu item saying "Make offline available".

Would that be possible? This would really make my life a lot easier, thank you!

Same scroll location on back button

When you navigate on sub folders in the application and you press the back button, the application gets on the parent folder. My problem is that it goes on the beginning of the parent folder instead of the scroll location that i was when i pressed the button.

It is very annoying when you are navigating on photos and you what to go on the next child folder.

output

Plain text preview

Would be useful if we can preview (and editing, maybe) plain text files inside the app, just like image or video files.

I cant build them

Error:Execution failed for task ':app:megaSDK'.

Process 'command 'make'' finished with non-zero exit value 2
I dont know how install, please i need help

Nexus 5 download error

Trying to download files to local device folder and everytime I get a network error, on wifi or mobile data.

Looked at the settings menu. Tried to change the default path from storage/emulated/0/MEGA/MEGA Downloads

Received a pop-up window error. "ERROR Filesystem Problem".

Checked the box for "Always ask for download location"

Attempted to download another file - received the same error - "ERROR Filesystem Problem".

MEGA SDK version - 970e65b

App version - 3.0.11.3

Can't share GIF-files!

Why can we only share static images and not GIF-files?!

The files plays fine, but can only share it thru the chat and not third-part appz like Telegram.

Save Offline files/folders to the External SD-card.

There are two ways to save some files in memory: 1)download files or 2)make them available offline. But a saving location can be chosen only for downloaded files. Why same is not possible for the files saved offline? It would be great to be able to move/sync them to the external sd-card, too.

Lack of Sorting Option

Unable to find any Sorting option when viewed secondary media storage. Especially required Sorting by date.

Images saved for OffLine shown with bad quality

Hi!

when you save a folder for example, in the Android app, and set it to be Available ofline, when you save in that folder an image, and view it with Mega, the quality is really bad, text is not readable.
But if you go to the folder thru the Android system the image quality is ok, same as saved in the web.

WebDAV android support

Hi,
I'm using Android version 8.1 with official mega.nz app.
I just wonder to know if it is possible to use WebDAV with third party app.
Thank you

White screen at run app after building and installing

After building and installation phases on my smartphone mega app appears as white on screen.
On Logcat I have these warns:

2019-02-02 12:46:03.702 2153-2153/mega.privacy.android.app E/Zygote: isWhitelistProcess - Process is Whitelisted
2019-02-02 12:46:03.702 2153-2153/mega.privacy.android.app E/libpersona: scanKnoxPersonas
2019-02-02 12:46:03.702 2153-2153/mega.privacy.android.app E/libpersona: Couldn't open the File - /data/system/users/0/personalist.xml - No such file or directory
2019-02-02 12:46:03.705 2153-2153/mega.privacy.android.app W/SELinux: SELinux selinux_android_compute_policy_index : Policy Index[2], Con:u:r:zygote:s0 RAM:SEPF_SM-G935F_8.0.0_0018, [-1 -1 -1 -1 0 1]
2019-02-02 12:46:04.440 2153-2153/? W/System.err: Native code library failed to load.
2019-02-02 12:46:04.440 2153-2153/? W/System.err: java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/mega.privacy.android.app-7AGniPUHFQ5hJyNA9f2Mjw==/base.apk", zip file "/data/app/mega.privacy.android.app-7AGniPUHFQ5hJyNA9f2Mjw==/split_lib_dependencies_apk.apk", zip file "/data/app/mega.privacy.android.app-7AGniPUHFQ5hJyNA9f2Mjw==/split_lib_resources_apk.apk", zip file "/data/app/mega.privacy.android.app-7AGniPUHFQ5hJyNA9f2Mjw==/split_lib_slice_0_apk.apk", zip file "/data/app/mega.privacy.android.app-7AGniPUHFQ5hJyNA9f2Mjw==/split_lib_slice_1_apk.apk", zip file "/data/app/mega.privacy.android.app-7AGniPUHFQ5hJyNA9f2Mjw==/split_lib_slice_2_apk.apk", zip file "/data/app/mega.privacy.android.app-7AGniPUHFQ5hJyNA9f2Mjw==/split_lib_slice_3_apk.apk", zip file "/data/app/mega.privacy.android.app-7AGniPUHFQ5hJyNA9f2Mjw==/split_lib_slice_4_apk.apk", zip file "/data/app/mega.privacy.android.app-7AGniPUHFQ5hJyNA9f2Mjw==/split_lib_slice_5_apk.apk", zip file "/data/app/mega.privacy.android.app-7AGniPUHFQ5hJyNA9f2Mjw==/split_lib_slice_6_apk.apk", zip file "/data/app/mega.privacy.android.app-7AGniPUHFQ5hJyNA9f2Mjw==/split_lib_slice_7_apk.apk", zip file "/data/app/mega.privacy.android.app-7AGniPUHFQ5hJyNA9f2Mjw==/split_lib_slice_8_apk.apk", zip file "/data/app/mega.privacy.android.app-7AGniPUHFQ5hJyNA9f2Mjw==/split_lib_slice_9_apk.apk"],nativeLibraryDirectories=[/data/app/mega.privacy.android.app-7AGniPUHFQ5hJyNA9f2Mjw==/lib/arm64, /system/lib64, /system/vendor/lib64]]] couldn't find "libmega.so"
2019-02-02 12:46:04.440 2153-2153/? W/System.err: java.lang.UnsatisfiedLinkError: dlopen failed: library "//libmega.so" not found
2019-02-02 12:46:04.440 2153-2153/? W/System.err: java.lang.UnsatisfiedLinkError: dlopen failed: library "//libs/libmegajava.so" not found
2019-02-02 12:46:04.440 2153-2153/? W/System.err: java.lang.UnsatisfiedLinkError: dlopen failed: library "//libs/mega.dll" not found
2019-02-02 12:46:04.440 2153-2153/? W/System.err: java.lang.UnsatisfiedLinkError: dlopen failed: library "//libmega.dylib" not found
2019-02-02 12:46:04.440 2153-2153/? W/System.err: java.lang.UnsatisfiedLinkError: dlopen failed: library "//libs/libmegajava.dylib" not found

What I wrong?
Thanks in advance

Process mega.privacy.android.app (pid 13803) has died

Hi,
I have problem with uploading photos with function camera upload. It does not work in auto mode. I found on console, that process is crashing. I need to manually start Mega client, and after few minutes upload start.

Here is logcat:

01-20 12:35:33.735: I/ActivityManager(1450): Process mega.privacy.android.app (pid 15161) has died
01-20 12:35:34.168: I/ActivityManager(1450): Start proc 15930:mega.privacy.android.app/u0a212 for broadcast mega.privacy.android.app/.receivers.NetEventReceiver
01-20 12:35:34.341: D/MegaApplication(15930): Database path: /data/data/mega.privacy.android.app/
01-20 12:35:34.370: D/MegaApplication(15930): Database path: /data/data/mega.privacy.android.app/
01-20 12:35:44.012: I/Timeline(3234): Timeline: Activity_launch_request id:mega.privacy.android.app time:137138681
01-20 12:35:44.013: I/ActivityManager(1450): START u0 {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=mega.privacy.android.app/.LauncherActivity bnds=[24,742][192,938]} from uid 10080 on display 0
01-20 12:35:44.016: V/WindowManager(1450): addAppToken: AppWindowToken{175e0d83 token=Token{18a53c32 ActivityRecord{200c4c3d u0 mega.privacy.android.app/.LauncherActivity t188}}} to stack=1 task=188 at 0
01-20 12:35:44.335: V/WindowManager(1450): Adding window Window{1519a9fb u0 Starting mega.privacy.android.app} at 8 of 14 (after Window{38ca3770 u0 com.sonyericsson.android.socialphonebook/com.sonyericsson.android.socialphonebook.DialerEntryActivity})
01-20 12:35:44.563: I/Timeline(15930): Timeline: Activity_launch_request id:mega.privacy.android.app time:137139233
01-20 12:35:44.564: I/ActivityManager(1450): START u0 {cmp=mega.privacy.android.app/.lollipop.ManagerActivityLollipop} from uid 10212 on display 0
01-20 12:35:44.567: V/WindowManager(1450): addAppToken: AppWindowToken{2a8caa56 token=Token{3279cc71 ActivityRecord{da0a18 u0 mega.privacy.android.app/.lollipop.ManagerActivityLollipop t188}}} to stack=1 task=188 at 1
01-20 12:35:44.567: V/WindowManager(1450): Based on layer: Adding window Window{1519a9fb u0 Starting mega.privacy.android.app} at 8 of 14
01-20 12:35:45.191: V/WindowManager(1450): Adding window Window{2f1ebb92 u0 mega.privacy.android.app/mega.privacy.android.app.lollipop.ManagerActivityLollipop} at 8 of 15 (before Window{1519a9fb u0 Starting mega.privacy.android.app})
01-20 12:35:45.323: I/Finsky(5266): [26590] com.google.android.finsky.billing.iab.s.a(5214): mega.privacy.android.app: Account determined from installer data - [cAVBs_L-M7D2wdlKaGOT0ww1gU8]
01-20 12:35:45.354: D/IabHelper(15930): In-app billing version 3 supported for mega.privacy.android.app
01-20 12:35:45.360: I/Finsky(5266): [26544] com.google.android.finsky.billing.iab.s.a(5214): mega.privacy.android.app: Account determined from installer data - [cAVBs_L-M7D2wdlKaGOT0ww1gU8]
01-20 12:35:45.362: D/IabHelper(15930): Package name: mega.privacy.android.app
01-20 12:35:45.364: I/Finsky(5266): [26583] com.google.android.finsky.billing.iab.s.a(5214): mega.privacy.android.app: Account determined from installer data - [cAVBs_L-M7D2wdlKaGOT0ww1gU8]
01-20 12:35:45.365: D/IabHelper(15930): Package name: mega.privacy.android.app
01-20 12:35:45.366: I/Finsky(5266): [26585] com.google.android.finsky.billing.iab.s.a(5214): mega.privacy.android.app: Account determined from installer data - [cAVBs_L-M7D2wdlKaGOT0ww1gU8]
01-20 12:35:45.834: I/ActivityManager(1450): Displayed mega.privacy.android.app/.lollipop.ManagerActivityLollipop: +1s251ms (total +1s497ms)
01-20 12:35:45.834: I/Timeline(1450): Timeline: Activity_windows_visible id: ActivityRecord{da0a18 u0 mega.privacy.android.app/.lollipop.ManagerActivityLollipop t188} time:137140504
01-20 12:35:49.311: D/WifiService(1450): acquireWifiLockLocked: WifiLock{MegaDownloadServiceWifiLock type=3 binder=android.os.BinderProxy@16479669}
01-20 12:35:51.522: I/ActivityManager(1450): Waited long enough for: ServiceRecord{15bb1e5a u0 mega.privacy.android.app/.CameraSyncService}
01-20 12:35:51.733: W/PackageManager(2573): Failure retrieving resources for mega.privacy.android.app: Resource ID #0x0
01-20 12:35:59.218: D/WifiService(1450): releaseWifiLockLocked: WifiLock{MegaDownloadServiceWifiLock type=3 binder=android.os.BinderProxy@16479669}
01-20 12:35:59.260: I/ActivityManager(1450): Process mega.privacy.android.app (pid 15930) has died
01-20 12:35:59.262: W/ActivityManager(1450): Scheduling restart of crashed service mega.privacy.android.app/.CameraSyncService in 1000ms
01-20 12:36:36.217: W/PackageManager(2573): Failure retrieving resources for mega.privacy.android.app: Resource ID #0x0
01-20 12:38:53.881: W/PackageManager(2573): Failure retrieving resources for mega.privacy.android.app: Resource ID #0x0
01-20 12:42:40.018: W/PackageManager(2573): Failure retrieving resources for mega.privacy.android.app: Resource ID #0x0
01-20 12:42:47.162: W/PackageManager(2573): Failure retrieving resources for mega.privacy.android.app: Resource ID #0x0
01-20 12:42:50.987: I/Timeline(3234): Timeline: Activity_launch_request id:mega.privacy.android.app time:137565657
01-20 12:42:50.988: I/ActivityManager(1450): START u0 {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=mega.privacy.android.app/.LauncherActivity bnds=[24,742][192,938]} from uid 10080 on display 0
01-20 12:42:50.991: V/WindowManager(1450): addAppToken: AppWindowToken{39def2af token=Token{cab0a8e ActivityRecord{23412a89 u0 mega.privacy.android.app/.LauncherActivity t190}}} to stack=1 task=190 at 0
01-20 12:42:51.043: V/WindowManager(1450): Adding window Window{3a5488a7 u0 Starting mega.privacy.android.app} at 7 of 13 (after Window{3fdf5f2a u0 com.sonyericsson.album/com.sonyericsson.album.MainActivity})
01-20 12:42:51.067: I/Timeline(24695): Timeline: Activity_launch_request id:mega.privacy.android.app time:137565736
01-20 12:42:51.067: I/ActivityManager(1450): START u0 {cmp=mega.privacy.android.app/.lollipop.ManagerActivityLollipop} from uid 10212 on display 0
01-20 12:42:51.071: V/WindowManager(1450): addAppToken: AppWindowToken{38451ec0 token=Token{1bb70843 ActivityRecord{32ae69f2 u0 mega.privacy.android.app/.lollipop.ManagerActivityLollipop t190}}} to stack=1 task=190 at 1
01-20 12:42:51.071: V/WindowManager(1450): Based on layer: Adding window Window{3a5488a7 u0 Starting mega.privacy.android.app} at 7 of 13
01-20 12:42:51.407: V/WindowManager(1450): Adding window Window{27cd454a u0 mega.privacy.android.app/mega.privacy.android.app.lollipop.ManagerActivityLollipop} at 7 of 14 (before Window{3a5488a7 u0 Starting mega.privacy.android.app})
01-20 12:42:51.525: I/Finsky(17287): [27353] com.google.android.finsky.billing.iab.s.a(5214): mega.privacy.android.app: Account determined from installer data - [cAVBs_L-M7D2wdlKaGOT0ww1gU8]
01-20 12:42:51.531: D/IabHelper(24695): In-app billing version 3 supported for mega.privacy.android.app
01-20 12:42:51.533: I/Finsky(17287): [27392] com.google.android.finsky.billing.iab.s.a(5214): mega.privacy.android.app: Account determined from installer data - [cAVBs_L-M7D2wdlKaGOT0ww1gU8]
01-20 12:42:51.534: D/IabHelper(24695): Package name: mega.privacy.android.app
01-20 12:42:51.538: I/Finsky(17287): [27354] com.google.android.finsky.billing.iab.s.a(5214): mega.privacy.android.app: Account determined from installer data - [cAVBs_L-M7D2wdlKaGOT0ww1gU8]
01-20 12:42:51.567: D/IabHelper(24695): Package name: mega.privacy.android.app
01-20 12:42:51.569: I/Finsky(17287): [27389] com.google.android.finsky.billing.iab.s.a(5214): mega.privacy.android.app: Account determined from installer data - [cAVBs_L-M7D2wdlKaGOT0ww1gU8]
01-20 12:42:51.728: I/ActivityManager(1450): Displayed mega.privacy.android.app/.lollipop.ManagerActivityLollipop: +617ms (total +719ms)
01-20 12:42:51.728: I/Timeline(1450): Timeline: Activity_windows_visible id: ActivityRecord{32ae69f2 u0 mega.privacy.android.app/.lollipop.ManagerActivityLollipop t190} time:137566398
01-20 12:43:08.721: W/PackageManager(2573): Failure retrieving resources for mega.privacy.android.app: Resource ID #0x0
01-20 12:43:18.589: W/PackageManager(2573): Failure retrieving resources for mega.privacy.android.app: Resource ID #0x0
01-20 12:43:22.037: V/WindowManager(1450): Adding window Window{4cfeb26 u0 Starting com.android.settings} at 8 of 14 (after Window{27cd454a u0 mega.privacy.android.app/mega.privacy.android.app.lollipop.ManagerActivityLollipop})
01-20 12:43:41.084: D/WifiService(1450): releaseWifiLockLocked: WifiLock{MegaDownloadServiceWifiLock type=3 binder=android.os.BinderProxy@32083426}
01-20 12:44:02.698: W/PackageManager(2573): Failure retrieving resources for mega.privacy.android.app: Resource ID #0x0
01-20 12:45:52.320: W/PackageManager(2573): Failure retrieving resources for mega.privacy.android.app: Resource ID #0x0
01-20 12:46:11.676: W/PackageManager(2573): Failure retrieving resources for mega.privacy.android.app: Resource ID #0x0

Device: Sony Xperia Z1C rooted
Android: Stock 5.1.1
Mega client: 3.0.12.3
Account: free

When you will be fixing this bug, please add option to recursively upload files from subfolders.

Maybe related:
The Android App doesn't automatically upload audio files any more #10
wont upload photos from external sd #3

Can't open PDFs in external viewer

Mega's internal viewer is used to open PDFs but then I can't find a way to get an external viewer/editor like Xodo to take over. Not even sharing is allowed.

I suppose I can download the PDF to local storage and then use Xodo or similar to open it from there, but that's not good enough. Dropbox etc allow this -- they even allow Xodo to sync files back to the cloud, but I suppose that's down to Xodo's designers.

The Android App doesn't automatically upload audio files any more

Despite I have configured a secondary upload folder, new files don't get uploaded to the configured folder any more! It used to work until months ago.
Moreover, while the app says that folder contains a number of files but fails to display them.

This is happening since long now.

Feature | Add fingerprint login for Android 6.0 and up

Today more and more devices have a fingerprint sensor that user can use to log in to third-party apps and instantly access to the app content
In the next Mega Android release you can add a fingerprint login option at the main settings (If SDK version is higher that Build.VERSION_CODES.M)
It can help users while logging into mega app. It can be added using assent (An android fingerprint authentication library)

Are files compressed?

I have uploaded a folder of multiple images, and viewing them in the app, the quality looks terrible

Also, sorry if there is a issue template, posting this issue on a mobile app

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.