Skip to content

Commit

Permalink
Merge branch 'release/v4.1.2' into 'master'
Browse files Browse the repository at this point in the history
Release v4.1.2

See merge request mobile/android/android!1788
  • Loading branch information
javiergm1983 committed May 10, 2021
2 parents f933686 + 4a738df commit eca2b9f
Show file tree
Hide file tree
Showing 150 changed files with 4,782 additions and 4,893 deletions.
18 changes: 8 additions & 10 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -194,7 +194,7 @@
android:label="@string/app_name">
</activity>

<activity android:name="mega.privacy.android.app.providers.PinFileProviderActivity"
<activity android:name="mega.privacy.android.app.providers.PasscodeFileProviderActivity"
android:label="@string/app_name">
</activity>

Expand Down Expand Up @@ -290,10 +290,10 @@
</activity>

<activity
android:name="mega.privacy.android.app.lollipop.PinLockActivityLollipop"
android:label="@string/settings_pin_lock"
android:windowSoftInputMode="adjustResize|stateVisible">
</activity>
android:name="mega.privacy.android.app.activities.settingsActivities.PasscodeLockActivity"
android:label="@string/settings_passcode_lock"
android:launchMode="singleInstance"
android:windowSoftInputMode="adjustResize|stateVisible"/>

<activity
android:name="mega.privacy.android.app.lollipop.ZipBrowserActivityLollipop"
Expand Down Expand Up @@ -458,9 +458,8 @@

<activity
android:name="mega.privacy.android.app.activities.settingsActivities.PasscodePreferencesActivity"
android:label="@string/settings_pin_lock_switch"
android:launchMode="singleTop">
</activity>
android:label="@string/settings_passcode_lock_switch"
android:launchMode="singleTop"/>

<activity
android:name="mega.privacy.android.app.activities.settingsActivities.CookiePreferencesActivity"
Expand Down Expand Up @@ -608,8 +607,7 @@

<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="mega.privacy.android.app.lollipop.PinActivityLollipop" />

android:value="mega.privacy.android.app.activities.PasscodeActivity" />
</activity>

<activity
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
import mega.privacy.android.app.components.ListenScrollChangesHelper;
import mega.privacy.android.app.listeners.GetAttrUserListener;
import mega.privacy.android.app.listeners.VerifyCredentialsListener;
import mega.privacy.android.app.lollipop.PinActivityLollipop;
import mega.privacy.android.app.activities.PasscodeActivity;
import nz.mega.sdk.MegaError;
import nz.mega.sdk.MegaRequest;
import nz.mega.sdk.MegaUser;
Expand All @@ -31,7 +31,7 @@
import static mega.privacy.android.app.utils.TextUtil.*;
import static mega.privacy.android.app.utils.Util.*;

public class AuthenticityCredentialsActivity extends PinActivityLollipop {
public class AuthenticityCredentialsActivity extends PasscodeActivity {

private static final String CONTACT_CREDENTIALS = "CONTACT_CREDENTIALS";
private static final int LENGTH_CREDENTIALS_LIST = 10;
Expand Down
3 changes: 2 additions & 1 deletion app/src/main/java/mega/privacy/android/app/BaseActivity.java
Original file line number Diff line number Diff line change
Expand Up @@ -211,8 +211,9 @@ protected boolean shouldSetStatusBarTextColor() {
* @param psa the psa to display
*/
private void launchPsaWebBrowser(Psa psa) {
// If there is a PsaWebBrowser launched, we shouldn't launch a new one.
// If there is a PsaWebBrowser launched, we should use it to load the new url.
if (psaWebBrowser != null && psaWebBrowser.isResumed()) {
psaWebBrowser.loadUrl(psa.getUrl());
return;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,14 +12,14 @@
import androidx.core.text.HtmlCompat;

import mega.privacy.android.app.lollipop.MyAccountInfo;
import mega.privacy.android.app.lollipop.PinActivityLollipop;
import mega.privacy.android.app.activities.PasscodeActivity;
import mega.privacy.android.app.utils.ColorUtils;
import nz.mega.sdk.MegaApiAndroid;

import static mega.privacy.android.app.utils.LogUtil.*;
import static mega.privacy.android.app.utils.Util.*;

public class BusinessExpiredAlertActivity extends PinActivityLollipop implements View.OnClickListener {
public class BusinessExpiredAlertActivity extends PasscodeActivity implements View.OnClickListener {

private static final int IMAGE_HEIGHT_PORTRAIT = 284;
private static final int IMAGE_HEIGHT_LANDSCAPE = 136;
Expand Down
190 changes: 118 additions & 72 deletions app/src/main/java/mega/privacy/android/app/DatabaseHandler.java

Large diffs are not rendered by default.

79 changes: 48 additions & 31 deletions app/src/main/java/mega/privacy/android/app/MegaApplication.java
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,6 @@
import androidx.core.provider.FontRequest;
import android.text.Html;
import android.text.Spanned;
import android.util.Log;

import javax.inject.Inject;

Expand All @@ -45,6 +44,7 @@
import io.reactivex.rxjava3.schedulers.Schedulers;
import mega.privacy.android.app.fragments.settingsFragments.cookie.data.CookieType;
import mega.privacy.android.app.fragments.settingsFragments.cookie.usecase.GetCookieSettingsUseCase;
import mega.privacy.android.app.globalmanagement.SortOrderManagement;
import mega.privacy.android.app.listeners.GlobalChatListener;
import org.webrtc.ContextUtils;
import java.util.ArrayList;
Expand Down Expand Up @@ -74,6 +74,7 @@
import mega.privacy.android.app.lollipop.megachat.BadgeIntentService;
import mega.privacy.android.app.lollipop.megachat.calls.CallService;
import mega.privacy.android.app.lollipop.megachat.calls.ChatCallActivity;
import mega.privacy.android.app.objects.PasscodeManagement;
import mega.privacy.android.app.receivers.NetworkStateReceiver;
import mega.privacy.android.app.utils.ThemeHelper;
import mega.privacy.android.app.service.ads.AdsLibInitializer;
Expand Down Expand Up @@ -105,6 +106,7 @@
import nz.mega.sdk.MegaUser;

import static android.media.AudioManager.STREAM_RING;
import static mega.privacy.android.app.sync.BackupToolsKt.initCuSync;
import static mega.privacy.android.app.utils.AlertsAndWarnings.showOverDiskQuotaPaywallWarning;
import static mega.privacy.android.app.utils.CacheFolderManager.*;
import static mega.privacy.android.app.constants.BroadcastConstants.*;
Expand All @@ -128,6 +130,7 @@ public class MegaApplication extends MultiDexApplication implements Application.

private static PushNotificationSettingManagement pushNotificationSettingManagement;
private static TransfersManagement transfersManagement;
private static PasscodeManagement passcodeManagement;
private static ChatManagement chatManagement;

@MegaApi
Expand All @@ -142,6 +145,8 @@ public class MegaApplication extends MultiDexApplication implements Application.
DatabaseHandler dbH;
@Inject
GetCookieSettingsUseCase getCookieSettingsUseCase;
@Inject
SortOrderManagement sortOrderManagement;

String localIpAddress = "";
BackgroundRequestListener requestListener;
Expand All @@ -167,8 +172,6 @@ public class MegaApplication extends MultiDexApplication implements Application.

private static boolean showInfoChatMessages = false;

private static boolean showPinScreen = true;

private static long openChatId = -1;

private static boolean closedChat = true;
Expand Down Expand Up @@ -315,7 +318,7 @@ public void onRequestFinish(MegaApiJava api, MegaRequest request,
return;
}

if (request.getType() == MegaRequest.TYPE_LOGOUT){
if (request.getType() == MegaRequest.TYPE_LOGOUT) {
logDebug("Logout finished: " + e.getErrorString() + "(" + e.getErrorCode() +")");
if (e.getErrorCode() == MegaError.API_OK) {
logDebug("END logout sdk request - wait chat logout");
Expand Down Expand Up @@ -349,8 +352,11 @@ else if(request.getType() == MegaRequest.TYPE_FETCH_NODES){
logDebug("Get CU attribute on fetch nodes.");
megaApi.getUserAttribute(USER_ATTR_CAMERA_UPLOADS_FOLDER, new GetCuAttributeListener(getApplicationContext()));

//Login transfers resumption
TransfersManagement.enableTransfersResumption();
// Init CU sync data after login successfully
initCuSync();

//Login check resumed pending transfers
TransfersManagement.checkResumedPendingTransfers();
}
}
else if(request.getType() == MegaRequest.TYPE_GET_ATTR_USER){
Expand Down Expand Up @@ -486,10 +492,9 @@ public void onRequestTemporaryError(MegaApiJava api,

}

private void sendBroadcastUpdateAccountDetails() {
Intent intent = new Intent(BROADCAST_ACTION_INTENT_UPDATE_ACCOUNT_DETAILS);
intent.putExtra(ACTION_TYPE, UPDATE_ACCOUNT_DETAILS);
sendBroadcast(intent);
public void sendBroadcastUpdateAccountDetails() {
sendBroadcast(new Intent(BROADCAST_ACTION_INTENT_UPDATE_ACCOUNT_DETAILS)
.putExtra(ACTION_TYPE, UPDATE_ACCOUNT_DETAILS));
}

private final int interval = 3000;
Expand Down Expand Up @@ -748,10 +753,11 @@ public void uncaughtException(Thread thread, Throwable e) {
storageState = dbH.getStorageState();
pushNotificationSettingManagement = new PushNotificationSettingManagement();
transfersManagement = new TransfersManagement();
passcodeManagement = new PasscodeManagement(null, 0, true);
chatManagement = new ChatManagement();

//Logout transfers resumption
TransfersManagement.enableTransfersResumption();
//Logout check resumed pending transfers
TransfersManagement.checkResumedPendingTransfers();

boolean staging = false;
if (dbH != null) {
Expand Down Expand Up @@ -937,6 +943,21 @@ private void setupMegaApi() {
languageString = megaApi.setLanguage(language);
logDebug("Result: " + languageString + " Language: " + language);
}

// Set the proper resource limit to try avoid issues when the number of parallel transfers is very big.
final int DESIRABLE_R_LIMIT = 20000; // SDK team recommended value
int currentLimit = megaApi.platformGetRLimitNumFile();
logDebug("Current resource limit is set to " + currentLimit);
if (currentLimit < DESIRABLE_R_LIMIT) {
logDebug("Resource limit is under desirable value. Trying to increase the resource limit...");
if (!megaApi.platformSetRLimitNumFile(DESIRABLE_R_LIMIT)) {
logWarning("Error setting resource limit.");
}

// Check new resource limit after set it in order to see if had been set successfully to the
// desired value or maybe to a lower value limited by the system.
logDebug("Resource limit is set to " + megaApi.platformGetRLimitNumFile());
}
}

/**
Expand Down Expand Up @@ -1013,14 +1034,6 @@ public static void setShowInfoChatMessages(boolean showInfoChatMessages) {
MegaApplication.showInfoChatMessages = showInfoChatMessages;
}

public static boolean isShowPinScreen() {
return showPinScreen;
}

public static void setShowPinScreen(boolean showPinScreen) {
MegaApplication.showPinScreen = showPinScreen;
}

public static String getUrlConfirmationLink() {
return urlConfirmationLink;
}
Expand Down Expand Up @@ -1218,6 +1231,8 @@ public void onRequestFinish(MegaChatApiJava api, MegaChatRequest request, MegaCh
else if (request.getType() == MegaChatRequest.TYPE_LOGOUT) {
logDebug("CHAT_TYPE_LOGOUT: " + e.getErrorCode() + "__" + e.getErrorString());

sortOrderManagement.resetDefaults();

try{
if (megaChatApi != null){
megaChatApi.removeChatRequestListener(this);
Expand Down Expand Up @@ -1314,16 +1329,6 @@ public void onRequestTemporaryError(MegaChatApiJava api, MegaChatRequest request
logWarning("onRequestTemporaryError (CHAT): "+e.getErrorString());
}

public void updateBusinessStatus() {
myAccountInfo.setBusinessStatusReceived(true);
int status = megaApi.getBusinessStatus();
if (status == BUSINESS_STATUS_EXPIRED
|| (megaApi.isMasterBusinessAccount() && status == BUSINESS_STATUS_GRACE_PERIOD)){
myAccountInfo.setShouldShowBusinessAlert(true);
}
sendBroadcastUpdateAccountDetails();
}

/**
* Method for showing an incoming group call notification.
*
Expand Down Expand Up @@ -1602,6 +1607,10 @@ private void removeStatusVideoAndSpeaker(long chatId){
hashMapVideo.remove(chatId);
}

public AppRTCAudioManager getAudioManager(){
return rtcAudioManager;
}

/**
* Create or update the AppRTCAudioManager for the in progress call.
*
Expand Down Expand Up @@ -1764,7 +1773,7 @@ public void checkQueuedCalls() {
public void launchCallActivity(MegaChatCall call) {
logDebug("Show the call screen: " + callStatusToString(call.getStatus()));
openCallService(call.getChatid());
MegaApplication.setShowPinScreen(false);
passcodeManagement.setShowPasscodeScreen(false);
int callStatus = call.getStatus();

Intent i = new Intent(this, ChatCallActivity.class);
Expand Down Expand Up @@ -1845,6 +1854,10 @@ public MyAccountInfo getMyAccountInfo() {
return myAccountInfo;
}

public void resetMyAccountInfo() {
myAccountInfo = new MyAccountInfo();
}

public static boolean getSpeakerStatus(long chatId) {
boolean entryExists = hashMapSpeaker.containsKey(chatId);
if (entryExists) {
Expand Down Expand Up @@ -1969,6 +1982,10 @@ public static void setUserWaitingForCall(long userWaitingForCall) {
MegaApplication.userWaitingForCall = userWaitingForCall;
}

public static PasscodeManagement getPasscodeManagement() {
return passcodeManagement;
}

public static boolean arePreferenceCookiesEnabled() {
return arePreferenceCookiesEnabled;
}
Expand Down
Loading

0 comments on commit eca2b9f

Please sign in to comment.