Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 23452861 authored by Mill Chen's avatar Mill Chen
Browse files

Add fancy animation for IA fragment

The animation of IA fragment is very choppy on expanding or collapsing
conditionals. So adding LayoutTransition for IA fragment makes the
animation more smoothly.

Bug: 123536786
Bug: 123537499
Test: visual, robotests
Change-Id: I731db8556ac392c9ab98bd292498ccf6c87295fb
parent 5f321d79
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -44,7 +44,8 @@
            <FrameLayout
                android:id="@+id/main_content"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"/>
                android:layout_height="wrap_content"
                android:animateLayoutChanges="true"/>

        </LinearLayout>
    </androidx.core.widget.NestedScrollView>
+4 −0
Original line number Diff line number Diff line
@@ -16,11 +16,13 @@

package com.android.settings.homepage;

import android.animation.LayoutTransition;
import android.app.settings.SettingsEnums;
import android.content.Intent;
import android.os.Bundle;
import android.util.FeatureFlagUtils;
import android.view.View;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.Toolbar;

@@ -64,6 +66,8 @@ public class SettingsHomepageActivity extends SettingsBaseActivity {

        showFragment(new ContextualCardsFragment(), R.id.contextual_cards_content);
        showFragment(new TopLevelSettings(), R.id.main_content);
        ((FrameLayout) findViewById(R.id.main_content))
                .getLayoutTransition().enableTransitionType(LayoutTransition.CHANGING);
    }

    private void showFragment(Fragment fragment, int id) {
+10 −0
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@ import static com.google.common.truth.Truth.assertThat;

import android.util.FeatureFlagUtils;
import android.view.View;
import android.widget.FrameLayout;

import com.android.settings.R;
import com.android.settings.SettingsActivity;
@@ -65,4 +66,13 @@ public class SettingsHomepageActivityTest {
        assertThat(actualPaddingTop).isEqualTo(
                statusBarHeight + searchBarHeight + searchBarMargin * 2);
    }

    @Test
    public void launch_shouldHaveAnimationForIaFragment() {
        final SettingsHomepageActivity activity = Robolectric.buildActivity(
                SettingsHomepageActivity.class).create().get();
        final FrameLayout frameLayout = activity.findViewById(R.id.main_content);

        assertThat(frameLayout.getLayoutTransition()).isNotNull();
    }
}