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.os.Bundle; 21941ec8ddcd762cc742ab4d71b5ac37d04666ee27Chris Banesimport android.support.annotation.Nullable; 22941ec8ddcd762cc742ab4d71b5ac37d04666ee27Chris Banesimport android.support.v7.app.AlertDialog; 23941ec8ddcd762cc742ab4d71b5ac37d04666ee27Chris Banesimport android.support.v7.app.AppCompatActivity; 24941ec8ddcd762cc742ab4d71b5ac37d04666ee27Chris Banesimport android.support.v7.app.AppCompatDelegate; 25941ec8ddcd762cc742ab4d71b5ac37d04666ee27Chris Banesimport android.support.v7.app.AppCompatDialog; 26941ec8ddcd762cc742ab4d71b5ac37d04666ee27Chris Banesimport android.view.View; 27941ec8ddcd762cc742ab4d71b5ac37d04666ee27Chris Banes 28941ec8ddcd762cc742ab4d71b5ac37d04666ee27Chris Banes/** 29941ec8ddcd762cc742ab4d71b5ac37d04666ee27Chris Banes * This demonstrates idiomatic usage of AlertDialog with Theme.AppCompat.DayNight 30941ec8ddcd762cc742ab4d71b5ac37d04666ee27Chris Banes */ 31941ec8ddcd762cc742ab4d71b5ac37d04666ee27Chris Banespublic class AppCompatNightModeAlertDialog extends AppCompatActivity { 32941ec8ddcd762cc742ab4d71b5ac37d04666ee27Chris Banes 33941ec8ddcd762cc742ab4d71b5ac37d04666ee27Chris Banes @Override 34941ec8ddcd762cc742ab4d71b5ac37d04666ee27Chris Banes protected void onCreate(@Nullable Bundle savedInstanceState) { 35941ec8ddcd762cc742ab4d71b5ac37d04666ee27Chris Banes super.onCreate(savedInstanceState); 36941ec8ddcd762cc742ab4d71b5ac37d04666ee27Chris Banes setContentView(R.layout.appcompat_night_mode); 37941ec8ddcd762cc742ab4d71b5ac37d04666ee27Chris Banes } 38941ec8ddcd762cc742ab4d71b5ac37d04666ee27Chris Banes 39941ec8ddcd762cc742ab4d71b5ac37d04666ee27Chris Banes public void setModeNightNo(View view) { 40941ec8ddcd762cc742ab4d71b5ac37d04666ee27Chris Banes AlertDialog dialog = createAlertDialog(); 41941ec8ddcd762cc742ab4d71b5ac37d04666ee27Chris Banes dialog.getDelegate().setLocalNightMode(AppCompatDelegate.MODE_NIGHT_NO); 42941ec8ddcd762cc742ab4d71b5ac37d04666ee27Chris Banes dialog.show(); 43941ec8ddcd762cc742ab4d71b5ac37d04666ee27Chris Banes } 44941ec8ddcd762cc742ab4d71b5ac37d04666ee27Chris Banes 45941ec8ddcd762cc742ab4d71b5ac37d04666ee27Chris Banes public void setModeNightYes(View view) { 46941ec8ddcd762cc742ab4d71b5ac37d04666ee27Chris Banes AlertDialog dialog = createAlertDialog(); 47941ec8ddcd762cc742ab4d71b5ac37d04666ee27Chris Banes dialog.getDelegate().setLocalNightMode(AppCompatDelegate.MODE_NIGHT_YES); 48941ec8ddcd762cc742ab4d71b5ac37d04666ee27Chris Banes dialog.show(); 49941ec8ddcd762cc742ab4d71b5ac37d04666ee27Chris Banes } 50941ec8ddcd762cc742ab4d71b5ac37d04666ee27Chris Banes 51941ec8ddcd762cc742ab4d71b5ac37d04666ee27Chris Banes public void setModeNightAuto(View view) { 52941ec8ddcd762cc742ab4d71b5ac37d04666ee27Chris Banes AlertDialog dialog = createAlertDialog(); 53941ec8ddcd762cc742ab4d71b5ac37d04666ee27Chris Banes dialog.getDelegate().setLocalNightMode(AppCompatDelegate.MODE_NIGHT_AUTO); 54941ec8ddcd762cc742ab4d71b5ac37d04666ee27Chris Banes dialog.show(); 55941ec8ddcd762cc742ab4d71b5ac37d04666ee27Chris Banes } 56941ec8ddcd762cc742ab4d71b5ac37d04666ee27Chris Banes 57941ec8ddcd762cc742ab4d71b5ac37d04666ee27Chris Banes private AlertDialog createAlertDialog() { 58941ec8ddcd762cc742ab4d71b5ac37d04666ee27Chris Banes AlertDialog.Builder b = new AlertDialog.Builder(this, 59941ec8ddcd762cc742ab4d71b5ac37d04666ee27Chris Banes R.style.Theme_AppCompat_DayNight_Dialog_Alert); 60941ec8ddcd762cc742ab4d71b5ac37d04666ee27Chris Banes b.setTitle(R.string.dialog_title); 61941ec8ddcd762cc742ab4d71b5ac37d04666ee27Chris Banes b.setMessage(R.string.dialog_content); 62941ec8ddcd762cc742ab4d71b5ac37d04666ee27Chris Banes return b.create(); 63941ec8ddcd762cc742ab4d71b5ac37d04666ee27Chris Banes } 64941ec8ddcd762cc742ab4d71b5ac37d04666ee27Chris Banes 65941ec8ddcd762cc742ab4d71b5ac37d04666ee27Chris Banes} 66