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

Commit 147c49ad authored by Chen Xu's avatar Chen Xu Committed by Automerger Merge Worker
Browse files

Merge "Support customize layout in CollapsingToolbarBaseActivity" into sc-dev am: 50ffbb96

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/15270705

Change-Id: I98720a846bcb5e507eb639a329ed5d36ac19f2c2
parents 47243eeb 50ffbb96
Loading
Loading
Loading
Loading
+1 −0
Original line number Original line Diff line number Diff line
@@ -18,6 +18,7 @@ android_library {
        "androidx.core_core",
        "androidx.core_core",
        "com.google.android.material_material",
        "com.google.android.material_material",
        "SettingsLibSettingsTransition",
        "SettingsLibSettingsTransition",
        "SettingsLibUtils",
    ],
    ],
    sdk_version: "system_current",
    sdk_version: "system_current",
    min_sdk_version: "29",
    min_sdk_version: "29",
+24 −2
Original line number Original line Diff line number Diff line
@@ -28,6 +28,8 @@ import androidx.annotation.Nullable;
import androidx.coordinatorlayout.widget.CoordinatorLayout;
import androidx.coordinatorlayout.widget.CoordinatorLayout;
import androidx.fragment.app.FragmentActivity;
import androidx.fragment.app.FragmentActivity;


import com.android.settingslib.utils.BuildCompatUtils;

import com.google.android.material.appbar.AppBarLayout;
import com.google.android.material.appbar.AppBarLayout;
import com.google.android.material.appbar.CollapsingToolbarLayout;
import com.google.android.material.appbar.CollapsingToolbarLayout;
import com.google.android.material.resources.TextAppearanceConfig;
import com.google.android.material.resources.TextAppearanceConfig;
@@ -44,10 +46,15 @@ public class CollapsingToolbarBaseActivity extends FragmentActivity {
    private CollapsingToolbarLayout mCollapsingToolbarLayout;
    private CollapsingToolbarLayout mCollapsingToolbarLayout;
    @Nullable
    @Nullable
    private AppBarLayout mAppBarLayout;
    private AppBarLayout mAppBarLayout;
    private int mCustomizeLayoutResId = 0;


    @Override
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        super.onCreate(savedInstanceState);
        if (mCustomizeLayoutResId > 0 && !BuildCompatUtils.isAtLeastS()) {
            super.setContentView(mCustomizeLayoutResId);
            return;
        }
        // Force loading font synchronously for collapsing toolbar layout
        // Force loading font synchronously for collapsing toolbar layout
        TextAppearanceConfig.setShouldLoadFontSynchronously(true);
        TextAppearanceConfig.setShouldLoadFontSynchronously(true);
        super.setContentView(R.layout.collapsing_toolbar_base_layout);
        super.setContentView(R.layout.collapsing_toolbar_base_layout);
@@ -81,12 +88,27 @@ public class CollapsingToolbarBaseActivity extends FragmentActivity {


    @Override
    @Override
    public void setContentView(View view) {
    public void setContentView(View view) {
        ((ViewGroup) findViewById(R.id.content_frame)).addView(view);
        final ViewGroup parent = findViewById(R.id.content_frame);
        if (parent != null) {
            parent.addView(view);
        }
    }
    }


    @Override
    @Override
    public void setContentView(View view, ViewGroup.LayoutParams params) {
    public void setContentView(View view, ViewGroup.LayoutParams params) {
        ((ViewGroup) findViewById(R.id.content_frame)).addView(view, params);
        final ViewGroup parent = findViewById(R.id.content_frame);
        if (parent != null) {
            parent.addView(view, params);
        }
    }

    /**
     * This method allows an activity to replace the default layout with a customize layout. Notice
     * that it will no longer apply the features being provided by this class when this method
     * gets called.
     */
    protected void setCustomizeContentView(int layoutResId) {
        mCustomizeLayoutResId = layoutResId;
    }
    }


    @Override
    @Override