diff --git a/res/anim-ldrtl/slide_from_end.xml b/res/anim-ldrtl/slide_from_end.xml
new file mode 100644
index 000000000..7e00a0272
--- /dev/null
+++ b/res/anim-ldrtl/slide_from_end.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/res/anim-ldrtl/slide_from_start.xml b/res/anim-ldrtl/slide_from_start.xml
new file mode 100644
index 000000000..feeaaf751
--- /dev/null
+++ b/res/anim-ldrtl/slide_from_start.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/res/anim-ldrtl/slide_to_end.xml b/res/anim-ldrtl/slide_to_end.xml
new file mode 100644
index 000000000..8fd13ee47
--- /dev/null
+++ b/res/anim-ldrtl/slide_to_end.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/res/anim-ldrtl/slide_to_start.xml b/res/anim-ldrtl/slide_to_start.xml
new file mode 100644
index 000000000..0a33f3dd3
--- /dev/null
+++ b/res/anim-ldrtl/slide_to_start.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/res/anim/slide_from_end.xml b/res/anim/slide_from_end.xml
new file mode 100644
index 000000000..feeaaf751
--- /dev/null
+++ b/res/anim/slide_from_end.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/res/anim/slide_from_start.xml b/res/anim/slide_from_start.xml
new file mode 100644
index 000000000..7e00a0272
--- /dev/null
+++ b/res/anim/slide_from_start.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/res/anim/slide_to_end.xml b/res/anim/slide_to_end.xml
new file mode 100644
index 000000000..0a33f3dd3
--- /dev/null
+++ b/res/anim/slide_to_end.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/res/anim/slide_to_start.xml b/res/anim/slide_to_start.xml
new file mode 100644
index 000000000..8fd13ee47
--- /dev/null
+++ b/res/anim/slide_to_start.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/src/org/thoughtcrime/securesms/ApplicationPreferencesActivity.java b/src/org/thoughtcrime/securesms/ApplicationPreferencesActivity.java
index fc37ef40a..c6846f893 100644
--- a/src/org/thoughtcrime/securesms/ApplicationPreferencesActivity.java
+++ b/src/org/thoughtcrime/securesms/ApplicationPreferencesActivity.java
@@ -26,12 +26,13 @@ import android.graphics.drawable.Drawable;
import android.os.Build;
import android.os.Build.VERSION;
import android.os.Bundle;
+
import androidx.annotation.Nullable;
+import androidx.core.content.ContextCompat;
+import androidx.core.graphics.drawable.DrawableCompat;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentTransaction;
-import androidx.core.content.ContextCompat;
-import androidx.core.graphics.drawable.DrawableCompat;
import androidx.preference.Preference;
import org.thoughtcrime.securesms.preferences.AdvancedPreferenceFragment;
@@ -272,6 +273,9 @@ public class ApplicationPreferencesActivity extends PassphraseRequiredActionBarA
FragmentManager fragmentManager = getActivity().getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
+
+ fragmentTransaction.setCustomAnimations(R.anim.slide_from_end, R.anim.slide_to_start, R.anim.slide_from_start, R.anim.slide_to_end);
+
fragmentTransaction.replace(android.R.id.content, fragment);
fragmentTransaction.addToBackStack(null);
fragmentTransaction.commit();
diff --git a/src/org/thoughtcrime/securesms/DeviceActivity.java b/src/org/thoughtcrime/securesms/DeviceActivity.java
index 6e2890924..2ebb90896 100644
--- a/src/org/thoughtcrime/securesms/DeviceActivity.java
+++ b/src/org/thoughtcrime/securesms/DeviceActivity.java
@@ -8,18 +8,18 @@ import android.os.AsyncTask;
import android.os.Build;
import android.os.Bundle;
import android.os.Vibrator;
-import androidx.annotation.NonNull;
import android.text.TextUtils;
import android.transition.TransitionInflater;
-
-import org.thoughtcrime.securesms.logging.Log;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
+import androidx.annotation.NonNull;
+
import org.thoughtcrime.securesms.crypto.IdentityKeyUtil;
import org.thoughtcrime.securesms.crypto.ProfileKeyUtil;
+import org.thoughtcrime.securesms.logging.Log;
import org.thoughtcrime.securesms.permissions.Permissions;
import org.thoughtcrime.securesms.push.AccountManagerFactory;
import org.thoughtcrime.securesms.qr.ScanListener;
@@ -75,6 +75,16 @@ public class DeviceActivity extends PassphraseRequiredActionBarActivity
} else {
initFragment(android.R.id.content, deviceListFragment, dynamicLanguage.getCurrentLocale());
}
+
+ overridePendingTransition(R.anim.slide_from_end, R.anim.slide_to_start);
+ }
+
+ @Override
+ protected void onPause() {
+ if (isFinishing()) {
+ overridePendingTransition(R.anim.slide_from_start, R.anim.slide_to_end);
+ }
+ super.onPause();
}
@Override