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

Commit 70e96958 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Update new API for checking the embedding status"

parents 7b5f8067 13a76eb8
Loading
Loading
Loading
Loading
+16.2 KiB (159 KiB)

File changed.

No diff preview for this file type.

+0 −12
Original line number Diff line number Diff line
@@ -16,10 +16,7 @@

package com.android.settings.activityembedding;

import android.app.Activity;
import android.app.ActivityTaskManager;
import android.content.Context;
import android.graphics.Rect;
import android.util.DisplayMetrics;
import android.util.FeatureFlagUtils;
import android.util.Log;
@@ -65,13 +62,4 @@ public class ActivityEmbeddingUtils {

        return isFlagEnabled && isSplitSupported;
    }

    /** Whether the screen meets two-pane resolution. */
    public static boolean isTwoPaneResolution(Activity activity) {
        final Rect currentTaskBounds =
                ActivityTaskManager.getInstance().getTaskBounds(activity.getTaskId());

        return currentTaskBounds.width() >= getMinCurrentScreenSplitWidthPx(activity)
                && currentTaskBounds.height() >= getMinSmallestScreenSplitWidthPx(activity);
    }
}
+10 −7
Original line number Diff line number Diff line
@@ -42,6 +42,7 @@ import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentActivity;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentTransaction;
import androidx.window.embedding.SplitController;
import androidx.window.embedding.SplitRule;

import com.android.settings.R;
@@ -85,8 +86,9 @@ public class SettingsHomepageActivity extends FragmentActivity implements
    private View mTwoPaneSuggestionView;
    private CategoryMixin mCategoryMixin;
    private Set<HomepageLoadedListener> mLoadedListeners;
    private SplitController mSplitController;
    private boolean mIsEmbeddingActivityEnabled;
    private boolean mIsTwoPaneLastTime;
    private boolean mIsTwoPane;

    /** A listener receiving homepage loaded events. */
    public interface HomepageLoadedListener {
@@ -149,7 +151,8 @@ public class SettingsHomepageActivity extends FragmentActivity implements
        super.onCreate(savedInstanceState);
        setContentView(R.layout.settings_homepage_container);
        mIsEmbeddingActivityEnabled = ActivityEmbeddingUtils.isEmbeddingActivityEnabled(this);
        mIsTwoPaneLastTime = ActivityEmbeddingUtils.isTwoPaneResolution(this);
        mSplitController = SplitController.getInstance();
        mIsTwoPane = mSplitController.isActivityEmbedded(this);

        final View appBar = findViewById(R.id.app_bar_container);
        appBar.setMinimumHeight(getSearchBoxHeight());
@@ -213,9 +216,9 @@ public class SettingsHomepageActivity extends FragmentActivity implements
    @Override
    public void onConfigurationChanged(Configuration newConfig) {
        super.onConfigurationChanged(newConfig);
        final boolean isTwoPane = ActivityEmbeddingUtils.isTwoPaneResolution(this);
        if (mIsTwoPaneLastTime != isTwoPane) {
            mIsTwoPaneLastTime = isTwoPane;
        final boolean newTwoPaneState = mSplitController.isActivityEmbedded(this);
        if (mIsTwoPane != newTwoPaneState) {
            mIsTwoPane = newTwoPaneState;
            updateHomepageAppBar();
            updateHomepageBackground();
        }
@@ -254,7 +257,7 @@ public class SettingsHomepageActivity extends FragmentActivity implements
        }

        final Window window = getWindow();
        final int color = ActivityEmbeddingUtils.isTwoPaneResolution(this)
        final int color = mIsTwoPane
                ? Utils.getColorAttrDefaultColor(this, com.android.internal.R.attr.colorSurface)
                : Utils.getColorAttrDefaultColor(this, android.R.attr.colorBackground);

@@ -416,7 +419,7 @@ public class SettingsHomepageActivity extends FragmentActivity implements
        if (!mIsEmbeddingActivityEnabled) {
            return;
        }
        if (ActivityEmbeddingUtils.isTwoPaneResolution(this)) {
        if (mIsTwoPane) {
            findViewById(R.id.homepage_app_bar_regular_phone_view).setVisibility(View.GONE);
            findViewById(R.id.homepage_app_bar_two_pane_view).setVisibility(View.VISIBLE);
        } else {
+2 −1
Original line number Diff line number Diff line
@@ -33,6 +33,7 @@ import androidx.preference.Preference;
import androidx.preference.PreferenceFragmentCompat;
import androidx.preference.PreferenceScreen;
import androidx.recyclerview.widget.RecyclerView;
import androidx.window.embedding.SplitController;

import com.android.settings.R;
import com.android.settings.Utils;
@@ -144,7 +145,7 @@ public class TopLevelSettings extends DashboardFragment implements
        if (mFirstStarted) {
            mFirstStarted = false;
        } else if (mIsEmbeddingActivityEnabled && isOnlyOneActivityInTask()
                && !ActivityEmbeddingUtils.isTwoPaneResolution(getActivity())) {
                && !SplitController.getInstance().isActivityEmbedded(getActivity())) {
            // Set default highlight menu key for 1-pane homepage since it will show the placeholder
            // page once changing back to 2-pane.
            Log.i(TAG, "Set default menu key");
+2 −2
Original line number Diff line number Diff line
@@ -31,10 +31,10 @@ import androidx.preference.PreferenceGroup;
import androidx.preference.PreferenceGroupAdapter;
import androidx.preference.PreferenceViewHolder;
import androidx.recyclerview.widget.RecyclerView;
import androidx.window.embedding.SplitController;

import com.android.settings.R;
import com.android.settings.Utils;
import com.android.settings.activityembedding.ActivityEmbeddingUtils;
import com.android.settings.homepage.SettingsHomepageActivity;

/**
@@ -255,6 +255,6 @@ public class HighlightableTopLevelPreferenceAdapter extends PreferenceGroupAdapt
    }

    private boolean isHighlightNeeded() {
        return ActivityEmbeddingUtils.isTwoPaneResolution(mHomepageActivity);
        return SplitController.getInstance().isActivityEmbedded(mHomepageActivity);
    }
}