Hi, I'm trying exactly the same, but no luck. Does somebody know anything on this?
Thanks Arkaitz On Feb 14, 7:01 am, Matt <[email protected]> wrote: > I am a bit stuck here. I think I am missing something obvious but > just can't figure out what it is. I have been trying to load the > original source code for "Alarm Clock" into Eclipse, but the code > shows an error inDigitalClock.java - "mContextcannot be resolved". > I have looked in a number of releases, and paste the code in exactly, > but always the same error - "mContextcannot be resolved". > > I have tried to "fix" the code various ways but to no avail. But then > this is the working original source code, so of course should not > requiring fixing ..... > > Any ideas would be appreciated. > > Thanks, > Matt > > Here is theDigitalClock.java code. > =============== > > /* > * Copyright (C) 2008 The Android Open Source Project > * > * Licensed under the Apache License, Version 2.0 (the "License"); > * you may not use this file except in compliance with the License. > * You may obtain a copy of the License at > * > * http://www.apache.org/licenses/LICENSE-2.0 > * > * Unless required by applicable law or agreed to in writing, software > * distributed under the License is distributed on an "AS IS" BASIS, > * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or > implied. > * See the License for the specific language governing permissions and > * limitations under the License. > */ > > package com.tencentapps.betteralarm; > > import android.content.BroadcastReceiver; > import android.content.Context; > import android.content.Intent; > import android.content.IntentFilter; > import android.content.res.Resources; > import android.database.ContentObserver; > import android.graphics.drawable.AnimationDrawable; > import android.graphics.drawable.Drawable; > import android.os.Handler; > import android.provider.Settings; > import android.text.format.DateFormat; > import android.util.AttributeSet; > import android.view.View; > import android.widget.LinearLayout; > import android.widget.TextView; > > import java.util.Calendar; > > import com.tencentapps.betteralarm.R; > import com.tencentapps.betteralarm.R.color; > import com.tencentapps.betteralarm.R.drawable; > import com.tencentapps.betteralarm.R.id; > > /** > * Displays the time > */ > public classDigitalClockextends LinearLayout { > > private final static String M12 = "h:mm"; > > private Calendar mCalendar; > private String mFormat; > private TextView mTimeDisplay; > private AmPm mAmPm; > private boolean mAnimate; > private ContentObserver mFormatChangeObserver; > private boolean mLive = true; > private boolean mAttached; > > /* called by system on minute ticks */ > private final Handler mHandler = new Handler(); > private final BroadcastReceiver mIntentReceiver = new > BroadcastReceiver() { > @Override > public void onReceive(Context context, Intent intent) { > if (mLive && intent.getAction().equals( > Intent.ACTION_TIMEZONE_CHANGED)) { > mCalendar = Calendar.getInstance(); > } > updateTime(); > } > }; > > static class AmPm { > private int mColorOn, mColorOff; > > private LinearLayout mAmPmLayout; > private TextView mAm, mPm; > > AmPm(View parent) { > mAmPmLayout = (LinearLayout) > parent.findViewById(R.id.am_pm); > mAm = (TextView)mAmPmLayout.findViewById(R.id.am); > mPm = (TextView)mAmPmLayout.findViewById(R.id.pm); > > Resources r = parent.getResources(); > mColorOn = r.getColor(R.color.ampm_on); > mColorOff = r.getColor(R.color.ampm_off); > } > > void setShowAmPm(boolean show) { > mAmPmLayout.setVisibility(show ? View.VISIBLE : > View.GONE); > } > > void setIsMorning(boolean isMorning) { > mAm.setTextColor(isMorning ? mColorOn : mColorOff); > mPm.setTextColor(isMorning ? mColorOff : mColorOn); > } > } > > private class FormatChangeObserver extends ContentObserver { > public FormatChangeObserver() { > super(new Handler()); > } > @Override > public void onChange(boolean selfChange) { > setDateFormat(); > updateTime(); > } > } > > publicDigitalClock(Context context) { > this(context, null); > } > > publicDigitalClock(Context context, AttributeSet attrs) { > super(context, attrs); > } > > @Override > protected void onFinishInflate() { > super.onFinishInflate(); > > mTimeDisplay = (TextView) findViewById(R.id.timeDisplay); > mAmPm = new AmPm(this); > mCalendar = Calendar.getInstance(); > > setDateFormat(); > } > > @Override > protected void onAttachedToWindow() { > super.onAttachedToWindow(); > > if (Log.LOGV) Log.v("onAttachedToWindow " + this); > > if (mAttached) return; > mAttached = true; > > if (mAnimate) { > setBackgroundResource(R.drawable.animate_circle); > /* Start the animation (looped playback by default). */ > ((AnimationDrawable) getBackground()).start(); > } > > if (mLive) { > /* monitor time ticks, time changed, timezone */ > IntentFilter filter = new IntentFilter(); > filter.addAction(Intent.ACTION_TIME_TICK); > filter.addAction(Intent.ACTION_TIME_CHANGED); > filter.addAction(Intent.ACTION_TIMEZONE_CHANGED); > mContext.registerReceiver(mIntentReceiver, filter, null, > mHandler); > } > > /* monitor 12/24-hour display preference */ > mFormatChangeObserver = new FormatChangeObserver(); > mContext.getContentResolver().registerContentObserver( > Settings.System.CONTENT_URI, true, > mFormatChangeObserver); > > updateTime(); > } > > @Override > protected void onDetachedFromWindow() { > super.onDetachedFromWindow(); > > if (!mAttached) return; > mAttached = false; > > Drawable background = getBackground(); > if (background instanceof AnimationDrawable) { > ((AnimationDrawable) background).stop(); > } > > if (mLive) { > mContext.unregisterReceiver(mIntentReceiver); > } > mContext.getContentResolver().unregisterContentObserver( > mFormatChangeObserver); > } > > void updateTime(Calendar c) { > mCalendar = c; > updateTime(); > } > > private void updateTime() { > if (mLive) { > mCalendar.setTimeInMillis(System.currentTimeMillis()); > } > > CharSequence newTime = DateFormat.format(mFormat, mCalendar); > mTimeDisplay.setText(newTime); > mAmPm.setIsMorning(mCalendar.get(Calendar.AM_PM) == 0); > } > > private void setDateFormat() { > mFormat = Alarms.get24HourMode(mContext) ? Alarms.M24 : M12; > mAmPm.setShowAmPm(mFormat == M12); > } > > void setAnimate() { > mAnimate = true; > } > > void setLive(boolean live) { > mLive = live; > } > > } > > -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/android-developers?hl=en

