Files
packages_apps_Settings/src/com/android/settings/display/DarkUIInfoDialogFragment.java
Salvador Martinez b0737ee174 Fix broken dark ui test
It was checking something in shared preferences which seems
to have stopped working (a bunch of the stuff used in the
test is deprecated). This CL just has it verify that
updateDarkTheme() is called when appropriate since that
is all we really care about.

Test: is a test
Bug: 130897882
Change-Id: If3286dd91b5a95cb0f41cac619a11a9089e0aecf
2019-04-25 10:25:15 -07:00

91 lines
3.2 KiB
Java

/*
* Copyright (C) 2019 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.settings.display;
import android.app.Dialog;
import android.app.UiModeManager;
import android.content.Context;
import android.content.DialogInterface;
import android.os.Bundle;
import android.provider.Settings;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AlertDialog;
import com.android.settings.R;
import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
public class DarkUIInfoDialogFragment extends InstrumentedDialogFragment
implements DialogInterface.OnClickListener{
@Override
public int getMetricsCategory() {
// TODO(b/130251804): Add metrics constant in followup change to avoid merge conflict in
// beta cherrypick
return 0;
}
@NonNull
@Override
public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {
Context context = getContext();
AlertDialog.Builder dialog = new AlertDialog.Builder(context);
LayoutInflater inflater = LayoutInflater.from(dialog.getContext());
View titleView = inflater.inflate(R.layout.settings_dialog_title, null);
((ImageView) titleView.findViewById(R.id.settings_icon))
.setImageDrawable(context.getDrawable(R.drawable.dark_theme));
((TextView) titleView.findViewById(R.id.settings_title)).setText(R.string.dark_ui_mode);
dialog.setCustomTitle(titleView)
.setMessage(R.string.dark_ui_settings_dark_summary)
.setPositiveButton(
R.string.dark_ui_settings_dialog_acknowledge,
this);
return dialog.create();
}
@Override
public void onDismiss(@NonNull DialogInterface dialog) {
enableDarkTheme();
super.onDismiss(dialog);
}
@Override
public void onClick(DialogInterface dialogInterface, int i) {
// We have to manually dismiss the dialog because changing night mode causes it to
// recreate itself.
dialogInterface.dismiss();
enableDarkTheme();
}
private void enableDarkTheme() {
final Context context = getContext();
if (context != null) {
Settings.Secure.putInt(context.getContentResolver(),
Settings.Secure.DARK_MODE_DIALOG_SEEN,
DarkUIPreferenceController.DIALOG_SEEN);
context.getSystemService(UiModeManager.class)
.setNightMode(UiModeManager.MODE_NIGHT_YES);
}
}
}