DateView.java revision 9066cfe9886ac131c34d59ed0e2d287b0e3c0087
19066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpackage com.android.server.status; 29066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 39066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.content.BroadcastReceiver; 49066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.content.Context; 59066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.content.Intent; 69066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.content.IntentFilter; 79066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.text.format.DateFormat; 89066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.util.AttributeSet; 99066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.util.Log; 109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.widget.TextView; 119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.view.MotionEvent; 129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport java.util.Date; 149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpublic final class DateView extends TextView { 169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private static final String TAG = "DateView"; 179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private boolean mUpdating = false; 199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private BroadcastReceiver mIntentReceiver = new BroadcastReceiver() { 219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @Override 229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void onReceive(Context context, Intent intent) { 239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project String action = intent.getAction(); 249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (action.equals(Intent.ACTION_TIME_TICK) 259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project || action.equals(Intent.ACTION_TIMEZONE_CHANGED)) { 269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project updateClock(); 279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project }; 309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public DateView(Context context, AttributeSet attrs) { 329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project super(context, attrs); 339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @Override 369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project protected void onAttachedToWindow() { 379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project super.onAttachedToWindow(); 389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @Override 419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project protected void onDetachedFromWindow() { 429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project super.onDetachedFromWindow(); 439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project setUpdates(false); 449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @Override 479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project protected int getSuggestedMinimumWidth() { 489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // makes the large background bitmap not force us to full width 499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return 0; 509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private final void updateClock() { 539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Date now = new Date(); 549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project setText(DateFormat.getLongDateFormat(getContext()).format(now)); 559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void setUpdates(boolean update) { 589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (update != mUpdating) { 599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mUpdating = update; 609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (update) { 619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // Register for Intent broadcasts for the clock and battery 629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IntentFilter filter = new IntentFilter(); 639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project filter.addAction(Intent.ACTION_TIME_TICK); 649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project filter.addAction(Intent.ACTION_TIMEZONE_CHANGED); 659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mContext.registerReceiver(mIntentReceiver, filter, null, null); 669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project updateClock(); 679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } else { 689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mContext.unregisterReceiver(mIntentReceiver); 699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project} 739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 74