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