2 * Copyright (C) 2009 The Android Open Source Project
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
8 * http://www.apache.org/licenses/LICENSE-2.0
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.
17 package com.android.deskclock;
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;
53 import java.util.Calendar;
54 import java.text.DateFormatSymbols;
57 * DeskClock clock view for desk docks.
59 public class DeskClock extends Activity {
61 private TextView mNextAlarm = null;
62 private Drawable mAlarmIcon = null;
64 private TextView mDate;
65 private DigitalClock mTime;
67 private boolean mDimmed = false;
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);
79 mNextAlarm.setVisibility(View.INVISIBLE);
83 private void doDim() {
84 View tintView = findViewById(R.id.window_tint);
86 Window win = getWindow();
87 WindowManager.LayoutParams winParams = win.getAttributes();
89 winParams.flags |= WindowManager.LayoutParams.FLAG_FULLSCREEN;
90 tintView.startAnimation(AnimationUtils.loadAnimation(this, R.anim.dim));
92 winParams.flags &= (~WindowManager.LayoutParams.FLAG_FULLSCREEN);
93 tintView.startAnimation(AnimationUtils.loadAnimation(this, R.anim.undim));
96 win.setAttributes(winParams);
100 protected void onCreate(Bundle icicle) {
101 super.onCreate(icicle);
103 setContentView(R.layout.desk_clock);
105 mTime = (DigitalClock) findViewById(R.id.time);
106 mDate = (TextView) findViewById(R.id.date);
108 mNextAlarm = (TextView) findViewById(R.id.nextAlarm);
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));
117 final Button galleryButton = (Button) findViewById(R.id.gallery_button);
118 galleryButton.setOnClickListener(new View.OnClickListener() {
119 public void onClick(View v) {
123 final Button musicButton = (Button) findViewById(R.id.music_button);
124 musicButton.setOnClickListener(new View.OnClickListener() {
125 public void onClick(View v) {
129 final Button nightmodeButton = (Button) findViewById(R.id.nightmode_button);
130 nightmodeButton.setOnClickListener(new View.OnClickListener() {
131 public void onClick(View v) {