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

Commit 97af8f1a authored by Dave Mankoff's avatar Dave Mankoff Committed by Android (Google) Code Review
Browse files

Merge "Remove Dependency.staticOnConfigurationChanged" into qt-qpr1-dev

parents 2e112273 be885c83
Loading
Loading
Loading
Loading
+0 −21
Original line number Diff line number Diff line
/*
 * Copyright (C) 2017 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file
 * except in compliance with the License. You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under the
 * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied. See the License for the specific language governing
 * permissions and limitations under the License.
 */

package com.android.systemui;

import android.content.res.Configuration;

public interface ConfigurationChangedReceiver {
    void onConfigurationChanged(Configuration newConfiguration);
}
+0 −10
Original line number Diff line number Diff line
@@ -16,7 +16,6 @@ package com.android.systemui;

import android.annotation.Nullable;
import android.app.INotificationManager;
import android.content.res.Configuration;
import android.hardware.SensorPrivacyManager;
import android.hardware.display.NightDisplayListener;
import android.os.Handler;
@@ -521,15 +520,6 @@ public class Dependency {
                .forEach(o -> ((Dumpable) o).dump(fd, pw, args));
    }

    protected static void staticOnConfigurationChanged(Configuration newConfig) {
        sDependency.onConfigurationChanged(newConfig);
    }

    protected synchronized void onConfigurationChanged(Configuration newConfig) {
        mDependencies.values().stream().filter(obj -> obj instanceof ConfigurationChangedReceiver)
                .forEach(o -> ((ConfigurationChangedReceiver) o).onConfigurationChanged(newConfig));
    }

    protected final <T> T getDependency(Class<T> cls) {
        return getDependencyInner(cls);
    }
+5 −1
Original line number Diff line number Diff line
@@ -286,7 +286,11 @@ public class SystemUIApplication extends Application implements SysUiServiceProv
    @Override
    public void onConfigurationChanged(Configuration newConfig) {
        if (mServicesStarted) {
            Dependency.staticOnConfigurationChanged(newConfig);
            SystemUIFactory
                    .getInstance()
                    .getRootComponent()
                    .getConfigurationController()
                    .onConfigurationChanged(newConfig);
            int len = mServices.length;
            for (int i = 0; i < len; i++) {
                if (mServices[i] != null) {
+9 −0
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@ import static com.android.systemui.Dependency.ALLOW_NOTIFICATION_LONG_PRESS_NAME

import com.android.systemui.fragments.FragmentService;
import com.android.systemui.statusbar.phone.StatusBar;
import com.android.systemui.statusbar.policy.ConfigurationController;
import com.android.systemui.util.InjectionInflationController;
import com.android.systemui.util.leak.GarbageMonitor;

@@ -40,12 +41,20 @@ import dagger.Component;
        SystemUIModule.class,
        SystemUIDefaultModule.class})
public interface SystemUIRootComponent {

    /**
     * Main dependency providing module.
     */
    @Singleton
    Dependency.DependencyInjector createDependency();


    /**
     * Creates a ConfigurationController.
     */
    @Singleton
    ConfigurationController getConfigurationController();

    /**
     * Injects the StatusBar.
     */
+34 −27
Original line number Diff line number Diff line
@@ -39,13 +39,13 @@ import com.android.internal.logging.MetricsLogger;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.keyguard.KeyguardUpdateMonitor;
import com.android.settingslib.applications.InterestingConfigChanges;
import com.android.systemui.ConfigurationChangedReceiver;
import com.android.systemui.Dependency;
import com.android.systemui.R;
import com.android.systemui.SysUiServiceProvider;
import com.android.systemui.assist.ui.DefaultUiController;
import com.android.systemui.recents.OverviewProxyService;
import com.android.systemui.statusbar.CommandQueue;
import com.android.systemui.statusbar.policy.ConfigurationController;
import com.android.systemui.statusbar.policy.DeviceProvisionedController;

import javax.inject.Inject;
@@ -55,7 +55,7 @@ import javax.inject.Singleton;
 * Class to manage everything related to assist in SystemUI.
 */
@Singleton
public class AssistManager implements ConfigurationChangedReceiver {
public class AssistManager {

    /**
     * Controls the UI for showing Assistant invocation progress.
@@ -153,12 +153,40 @@ public class AssistManager implements ConfigurationChangedReceiver {
        }
    };

    private ConfigurationController.ConfigurationListener mConfigurationListener =
            new ConfigurationController.ConfigurationListener() {
                @Override
                public void onConfigChanged(Configuration newConfig) {
                    if (!mInterestingConfigChanges.applyNewConfig(mContext.getResources())) {
                        return;
                    }
                    boolean visible = false;
                    if (mView != null) {
                        visible = mView.isShowing();
                        mWindowManager.removeView(mView);
                    }

                    mView = (AssistOrbContainer) LayoutInflater.from(mContext).inflate(
                            R.layout.assist_orb, null);
                    mView.setVisibility(View.GONE);
                    mView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
                            | View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                            | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION);
                    WindowManager.LayoutParams lp = getLayoutParams();
                    mWindowManager.addView(mView, lp);
                    if (visible) {
                        mView.show(true /* show */, false /* animate */);
                    }
                }
            };

    @Inject
    public AssistManager(
            DeviceProvisionedController controller,
            Context context,
            AssistUtils assistUtils,
            AssistHandleBehaviorController handleController) {
            AssistHandleBehaviorController handleController,
            ConfigurationController configurationController) {
        mContext = context;
        mDeviceProvisionedController = controller;
        mWindowManager = (WindowManager) mContext.getSystemService(Context.WINDOW_SERVICE);
@@ -167,11 +195,13 @@ public class AssistManager implements ConfigurationChangedReceiver {
        mPhoneStateMonitor = new PhoneStateMonitor(context);
        mHandleController = handleController;

        configurationController.addCallback(mConfigurationListener);

        registerVoiceInteractionSessionListener();
        mInterestingConfigChanges = new InterestingConfigChanges(ActivityInfo.CONFIG_ORIENTATION
                | ActivityInfo.CONFIG_LOCALE | ActivityInfo.CONFIG_UI_MODE
                | ActivityInfo.CONFIG_SCREEN_LAYOUT | ActivityInfo.CONFIG_ASSETS_PATHS);
        onConfigurationChanged(context.getResources().getConfiguration());
        mConfigurationListener.onConfigChanged(context.getResources().getConfiguration());
        mShouldEnableOrb = !ActivityManager.isLowRamDeviceStatic();

        mUiController = new DefaultUiController(mContext);
@@ -221,29 +251,6 @@ public class AssistManager implements ConfigurationChangedReceiver {
                });
    }

    public void onConfigurationChanged(Configuration newConfiguration) {
        if (!mInterestingConfigChanges.applyNewConfig(mContext.getResources())) {
            return;
        }
        boolean visible = false;
        if (mView != null) {
            visible = mView.isShowing();
            mWindowManager.removeView(mView);
        }

        mView = (AssistOrbContainer) LayoutInflater.from(mContext).inflate(
                R.layout.assist_orb, null);
        mView.setVisibility(View.GONE);
        mView.setSystemUiVisibility(
                View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                        | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION);
        WindowManager.LayoutParams lp = getLayoutParams();
        mWindowManager.addView(mView, lp);
        if (visible) {
            mView.show(true /* show */, false /* animate */);
        }
    }

    protected boolean shouldShowOrb() {
        return false;
    }
Loading