Skip to content
Permalink
Browse files
Merge pull request #6310 from mahdihijazi/fix_animation
Android: Fix settings screen animation if Animator Duration Scale is Off
  • Loading branch information
leoetlino committed Jan 24, 2018
2 parents 9a166dc + 53f2fcb commit c3dc8bf
Showing 1 changed file with 20 additions and 5 deletions.
@@ -5,6 +5,7 @@
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Bundle;
import android.provider.Settings;
import android.support.v4.app.FragmentTransaction;
import android.support.v4.content.LocalBroadcastManager;
import android.support.v7.app.AppCompatActivity;
@@ -106,11 +107,14 @@ public void showSettingsFragment(String menuTag, boolean addToStack)

if (addToStack)
{
transaction.setCustomAnimations(
R.animator.settings_enter,
R.animator.settings_exit,
R.animator.settings_pop_enter,
R.animator.setttings_pop_exit);
if (areSystemAnimationsEnabled())
{
transaction.setCustomAnimations(
R.animator.settings_enter,
R.animator.settings_exit,
R.animator.settings_pop_enter,
R.animator.setttings_pop_exit);
}

transaction.addToBackStack(null);
mPresenter.addToStack();
@@ -120,6 +124,17 @@ public void showSettingsFragment(String menuTag, boolean addToStack)
transaction.commit();
}

private boolean areSystemAnimationsEnabled()
{
float duration = Settings.Global.getFloat(
getContentResolver(),
Settings.Global.ANIMATOR_DURATION_SCALE, 1);
float transition = Settings.Global.getFloat(
getContentResolver(),
Settings.Global.TRANSITION_ANIMATION_SCALE, 1);
return duration != 0 && transition != 0;
}

@Override
public void startDirectoryInitializationService(DirectoryStateReceiver receiver, IntentFilter filter)
{

0 comments on commit c3dc8bf

Please sign in to comment.