DeskClock.java revision f8317ad7146b1cdfeded7acb23ae8f770b2d3f97
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 17package com.android.deskclock; 18 19import android.app.Activity; 20import android.app.AlertDialog; 21import android.content.Context; 22import android.content.DialogInterface; 23import android.content.Intent; 24import android.content.SharedPreferences; 25import android.content.res.Configuration; 26import android.database.Cursor; 27import android.graphics.drawable.Drawable; 28import android.graphics.drawable.ColorDrawable; 29import android.net.Uri; 30import android.os.Bundle; 31import android.os.Handler; 32import android.provider.Settings; 33import android.text.TextUtils; 34import android.view.animation.AnimationUtils; 35import android.view.ContextMenu; 36import android.view.ContextMenu.ContextMenuInfo; 37import android.view.LayoutInflater; 38import android.view.Menu; 39import android.view.MenuItem; 40import android.view.View; 41import android.view.View.OnClickListener; 42import android.view.View.OnCreateContextMenuListener; 43import android.view.ViewGroup; 44import android.view.Window; 45import android.view.WindowManager; 46import android.widget.AdapterView; 47import android.widget.AdapterView.AdapterContextMenuInfo; 48import android.widget.AdapterView.OnItemClickListener; 49import android.widget.Button; 50import android.widget.TextView; 51import android.widget.CheckBox; 52 53import java.util.Calendar; 54import java.text.DateFormatSymbols; 55 56/** 57 * DeskClock clock view for desk docks. 58 */ 59public 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} 142