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