Definir cor da barra de status do DialogFragment

Estou criando um aplicativo que altera a cor da barra de status dinamicamente.

Meu método na classe principal Activity funciona bem quando chamado de qualquer fragmento. Fragmentos são colocados no pager de atividades:

public void setStatusBarColorIfPossible(int color) {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
        getWindow().setStatusBarColor(color);
    }
}

No entanto, em DialogFragment, que é criado em qualquer fragmento e criado em tela cheia, chamar meu método não tem efeito. A barra de status fica instantaneamente preta (conforme definido em styles.xml) e não posso alterá-la.

public class AddOrEditWeekPlanDialog extends DialogFragment {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setStyle(DialogFragment.STYLE_NORMAL, R.style.MyDialog);
    }

    @Override
    public void onStart() {
        super.onStart();
        Dialog d = getDialog();
        if (d!=null){
            int width = ViewGroup.LayoutParams.MATCH_PARENT;
            int height = ViewGroup.LayoutParams.MATCH_PARENT;
            d.getWindow().setLayout(width, height);
        }
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View root = inflater.inflate(R.layout.fragment_dialog, container, false);
        Button button = (Button)root.findViewById(R.id.button);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                ((ThermostatActivity) getActivity()).setStatusBarColorIfPossible(0xFF0D47A1);
            }
        });

        return root;
    }

    @Override
    public void onResume() {
        super.onResume();

    }
}

styles.xml:

// Set in manifest for main activity
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
</style>

// Set in dialog class
<style name="MyDialog" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="android:windowIsFloating">false</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
</style>

resources.xml:

<resources>
    <color name="colorPrimary">#FFB72020</color>
    <color name="colorPrimaryDark">#000</color>
    <color name="textColor">#fff</color>
    <color name="tabsScrollColor">#fff</color>
</resources>

Alguém pode me explicar por quê?

questionAnswers(2)

yourAnswerToTheQuestion