AppCompatNightModeDialog.java revision 941ec8ddcd762cc742ab4d71b5ac37d04666ee27
1941ec8ddcd762cc742ab4d71b5ac37d04666ee27Chris Banes/* 2941ec8ddcd762cc742ab4d71b5ac37d04666ee27Chris Banes * Copyright (C) 2014 The Android Open Source Project 3941ec8ddcd762cc742ab4d71b5ac37d04666ee27Chris Banes * 4941ec8ddcd762cc742ab4d71b5ac37d04666ee27Chris Banes * Licensed under the Apache License, Version 2.0 (the "License"); 5941ec8ddcd762cc742ab4d71b5ac37d04666ee27Chris Banes * you may not use this file except in compliance with the License. 6941ec8ddcd762cc742ab4d71b5ac37d04666ee27Chris Banes * You may obtain a copy of the License at 7941ec8ddcd762cc742ab4d71b5ac37d04666ee27Chris Banes * 8941ec8ddcd762cc742ab4d71b5ac37d04666ee27Chris Banes * http://www.apache.org/licenses/LICENSE-2.0 9941ec8ddcd762cc742ab4d71b5ac37d04666ee27Chris Banes * 10941ec8ddcd762cc742ab4d71b5ac37d04666ee27Chris Banes * Unless required by applicable law or agreed to in writing, software 11941ec8ddcd762cc742ab4d71b5ac37d04666ee27Chris Banes * distributed under the License is distributed on an "AS IS" BASIS, 12941ec8ddcd762cc742ab4d71b5ac37d04666ee27Chris Banes * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13941ec8ddcd762cc742ab4d71b5ac37d04666ee27Chris Banes * See the License for the specific language governing permissions and 14941ec8ddcd762cc742ab4d71b5ac37d04666ee27Chris Banes * limitations under the License. 15941ec8ddcd762cc742ab4d71b5ac37d04666ee27Chris Banes */ 16941ec8ddcd762cc742ab4d71b5ac37d04666ee27Chris Banespackage com.example.android.supportv7.app; 17941ec8ddcd762cc742ab4d71b5ac37d04666ee27Chris Banes 18941ec8ddcd762cc742ab4d71b5ac37d04666ee27Chris Banesimport com.example.android.supportv7.R; 19941ec8ddcd762cc742ab4d71b5ac37d04666ee27Chris Banes 20941ec8ddcd762cc742ab4d71b5ac37d04666ee27Chris Banesimport android.app.Dialog; 21941ec8ddcd762cc742ab4d71b5ac37d04666ee27Chris Banesimport android.content.Context; 22941ec8ddcd762cc742ab4d71b5ac37d04666ee27Chris Banesimport android.os.Bundle; 23941ec8ddcd762cc742ab4d71b5ac37d04666ee27Chris Banesimport android.support.annotation.Nullable; 24941ec8ddcd762cc742ab4d71b5ac37d04666ee27Chris Banesimport android.support.v4.view.WindowCompat; 25941ec8ddcd762cc742ab4d71b5ac37d04666ee27Chris Banesimport android.support.v7.app.AppCompatActivity; 26941ec8ddcd762cc742ab4d71b5ac37d04666ee27Chris Banesimport android.support.v7.app.AppCompatDelegate; 27941ec8ddcd762cc742ab4d71b5ac37d04666ee27Chris Banesimport android.support.v7.app.AppCompatDialog; 28941ec8ddcd762cc742ab4d71b5ac37d04666ee27Chris Banesimport android.view.Menu; 29941ec8ddcd762cc742ab4d71b5ac37d04666ee27Chris Banesimport android.view.MenuItem; 30941ec8ddcd762cc742ab4d71b5ac37d04666ee27Chris Banesimport android.view.View; 31941ec8ddcd762cc742ab4d71b5ac37d04666ee27Chris Banesimport android.widget.Spinner; 32941ec8ddcd762cc742ab4d71b5ac37d04666ee27Chris Banesimport android.widget.Toast; 33941ec8ddcd762cc742ab4d71b5ac37d04666ee27Chris Banes 34941ec8ddcd762cc742ab4d71b5ac37d04666ee27Chris Banes/** 35941ec8ddcd762cc742ab4d71b5ac37d04666ee27Chris Banes * This demonstrates idiomatic usage of Dialog with Theme.AppCompat.DayNight 36941ec8ddcd762cc742ab4d71b5ac37d04666ee27Chris Banes */ 37941ec8ddcd762cc742ab4d71b5ac37d04666ee27Chris Banespublic class AppCompatNightModeDialog extends AppCompatActivity { 38941ec8ddcd762cc742ab4d71b5ac37d04666ee27Chris Banes 39941ec8ddcd762cc742ab4d71b5ac37d04666ee27Chris Banes @Override 40941ec8ddcd762cc742ab4d71b5ac37d04666ee27Chris Banes protected void onCreate(@Nullable Bundle savedInstanceState) { 41941ec8ddcd762cc742ab4d71b5ac37d04666ee27Chris Banes super.onCreate(savedInstanceState); 42941ec8ddcd762cc742ab4d71b5ac37d04666ee27Chris Banes setContentView(R.layout.appcompat_night_mode); 43941ec8ddcd762cc742ab4d71b5ac37d04666ee27Chris Banes } 44941ec8ddcd762cc742ab4d71b5ac37d04666ee27Chris Banes 45941ec8ddcd762cc742ab4d71b5ac37d04666ee27Chris Banes public void setModeNightNo(View view) { 46941ec8ddcd762cc742ab4d71b5ac37d04666ee27Chris Banes AppCompatDialog dialog = new AppCompatDialog(this, R.style.Theme_AppCompat_DayNight_Dialog); 47941ec8ddcd762cc742ab4d71b5ac37d04666ee27Chris Banes dialog.getDelegate().setLocalNightMode(AppCompatDelegate.MODE_NIGHT_NO); 48941ec8ddcd762cc742ab4d71b5ac37d04666ee27Chris Banes dialog.setTitle(R.string.dialog_title); 49941ec8ddcd762cc742ab4d71b5ac37d04666ee27Chris Banes dialog.setContentView(R.layout.dialog_content); 50941ec8ddcd762cc742ab4d71b5ac37d04666ee27Chris Banes dialog.show(); 51941ec8ddcd762cc742ab4d71b5ac37d04666ee27Chris Banes } 52941ec8ddcd762cc742ab4d71b5ac37d04666ee27Chris Banes 53941ec8ddcd762cc742ab4d71b5ac37d04666ee27Chris Banes public void setModeNightYes(View view) { 54941ec8ddcd762cc742ab4d71b5ac37d04666ee27Chris Banes AppCompatDialog dialog = new AppCompatDialog(this, R.style.Theme_AppCompat_DayNight_Dialog); 55941ec8ddcd762cc742ab4d71b5ac37d04666ee27Chris Banes dialog.getDelegate().setLocalNightMode(AppCompatDelegate.MODE_NIGHT_YES); 56941ec8ddcd762cc742ab4d71b5ac37d04666ee27Chris Banes dialog.setTitle(R.string.dialog_title); 57941ec8ddcd762cc742ab4d71b5ac37d04666ee27Chris Banes dialog.setContentView(R.layout.dialog_content); 58941ec8ddcd762cc742ab4d71b5ac37d04666ee27Chris Banes dialog.show(); 59941ec8ddcd762cc742ab4d71b5ac37d04666ee27Chris Banes } 60941ec8ddcd762cc742ab4d71b5ac37d04666ee27Chris Banes 61941ec8ddcd762cc742ab4d71b5ac37d04666ee27Chris Banes public void setModeNightAuto(View view) { 62941ec8ddcd762cc742ab4d71b5ac37d04666ee27Chris Banes AppCompatDialog dialog = new AppCompatDialog(this, R.style.Theme_AppCompat_DayNight_Dialog); 63941ec8ddcd762cc742ab4d71b5ac37d04666ee27Chris Banes dialog.getDelegate().setLocalNightMode(AppCompatDelegate.MODE_NIGHT_AUTO); 64941ec8ddcd762cc742ab4d71b5ac37d04666ee27Chris Banes dialog.setTitle(R.string.dialog_title); 65941ec8ddcd762cc742ab4d71b5ac37d04666ee27Chris Banes dialog.setContentView(R.layout.dialog_content); 66941ec8ddcd762cc742ab4d71b5ac37d04666ee27Chris Banes dialog.show(); 67941ec8ddcd762cc742ab4d71b5ac37d04666ee27Chris Banes } 68941ec8ddcd762cc742ab4d71b5ac37d04666ee27Chris Banes 69941ec8ddcd762cc742ab4d71b5ac37d04666ee27Chris Banes 70941ec8ddcd762cc742ab4d71b5ac37d04666ee27Chris Banes} 71