OSDN Git Service

New DeskClock activity, now the main app entry point.
[android-x86/packages-apps-DeskClock.git] / src / com / android / deskclock / DeskClock.java
1 /*
2  * Copyright (C) 2009 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16
17 package com.android.deskclock;
18
19 import android.app.Activity;
20 import android.app.AlertDialog;
21 import android.content.Context;
22 import android.content.DialogInterface;
23 import android.content.Intent;
24 import android.content.SharedPreferences;
25 import android.content.res.Configuration;
26 import android.database.Cursor;
27 import android.graphics.drawable.Drawable;
28 import android.graphics.drawable.ColorDrawable;
29 import android.net.Uri;
30 import android.os.Bundle;
31 import android.os.Handler;
32 import android.provider.Settings;
33 import android.text.TextUtils;
34 import android.view.animation.AnimationUtils;
35 import android.view.ContextMenu;
36 import android.view.ContextMenu.ContextMenuInfo;
37 import android.view.LayoutInflater;
38 import android.view.Menu;
39 import android.view.MenuItem;
40 import android.view.View;
41 import android.view.View.OnClickListener;
42 import android.view.View.OnCreateContextMenuListener;
43 import android.view.ViewGroup;
44 import android.view.Window;
45 import android.view.WindowManager;
46 import android.widget.AdapterView;
47 import android.widget.AdapterView.AdapterContextMenuInfo;
48 import android.widget.AdapterView.OnItemClickListener;
49 import android.widget.Button;
50 import android.widget.TextView;
51 import android.widget.CheckBox;
52
53 import java.util.Calendar;
54 import java.text.DateFormatSymbols;
55
56 /**
57  * DeskClock clock view for desk docks.
58  */
59 public class DeskClock extends Activity {
60
61     private TextView mNextAlarm = null;
62     private Drawable mAlarmIcon = null;
63
64     private TextView mDate;
65     private DigitalClock mTime;
66
67     private boolean mDimmed = false;
68
69     private void refreshAlarm() {
70         String nextAlarm = Settings.System.getString(getContentResolver(),
71                 Settings.System.NEXT_ALARM_FORMATTED);
72         if (nextAlarm != null && TextUtils.isEmpty(nextAlarm)) {
73             mNextAlarm.setText(nextAlarm);
74             mAlarmIcon = getResources().getDrawable(android.R.drawable.ic_lock_idle_alarm);
75             mNextAlarm.setCompoundDrawablesWithIntrinsicBounds(
76                 mAlarmIcon, null, null, null);
77             mNextAlarm.setVisibility(View.VISIBLE);
78         } else {
79             mNextAlarm.setVisibility(View.INVISIBLE);
80         }
81     }
82
83     private void doDim() {
84         View tintView = findViewById(R.id.window_tint);
85
86         Window win = getWindow();
87         WindowManager.LayoutParams winParams = win.getAttributes();
88         if (mDimmed) {
89             winParams.flags |= WindowManager.LayoutParams.FLAG_FULLSCREEN;
90             tintView.startAnimation(AnimationUtils.loadAnimation(this, R.anim.dim));
91         } else {
92             winParams.flags &= (~WindowManager.LayoutParams.FLAG_FULLSCREEN);
93             tintView.startAnimation(AnimationUtils.loadAnimation(this, R.anim.undim));
94         }
95
96         win.setAttributes(winParams);
97     }
98
99     @Override
100     protected void onCreate(Bundle icicle) {
101         super.onCreate(icicle);
102
103         setContentView(R.layout.desk_clock);
104
105         mTime = (DigitalClock) findViewById(R.id.time);
106         mDate = (TextView) findViewById(R.id.date);
107
108         mNextAlarm = (TextView) findViewById(R.id.nextAlarm);
109
110         final Button alarmButton = (Button) findViewById(R.id.alarm_button);
111         alarmButton.setOnClickListener(new View.OnClickListener() {
112             public void onClick(View v) {
113                 startActivity(new Intent(DeskClock.this, AlarmClock.class));
114             }
115         });
116
117         final Button galleryButton = (Button) findViewById(R.id.gallery_button);
118         galleryButton.setOnClickListener(new View.OnClickListener() {
119             public void onClick(View v) {
120             }
121         });
122
123         final Button musicButton = (Button) findViewById(R.id.music_button);
124         musicButton.setOnClickListener(new View.OnClickListener() {
125             public void onClick(View v) {
126             }
127         });
128
129         final Button nightmodeButton = (Button) findViewById(R.id.nightmode_button);
130         nightmodeButton.setOnClickListener(new View.OnClickListener() {
131             public void onClick(View v) {
132                 mDimmed = ! mDimmed;
133                 doDim();
134             }
135         });
136
137         doDim();
138         refreshAlarm();
139     }
140
141 }