package com.android.internal.policy.impl;
import android.content.BroadcastReceiver;
import android.content.ContentResolver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.database.ContentObserver;
import android.os.Handler;
import android.provider.Settings;
import android.util.AttributeSet;
import android.util.Log;
import android.view.View;
import android.widget.TextView;
public class WeatherText extends TextView {
private boolean mAttached;
public static final String EXTRA_CITY = "city";
public static final String EXTRA_CONDITION = "condition";
public static final String EXTRA_FORECAST_DATE = "forecast_date";
public static final String EXTRA_TEMP = "temp";
public static final String EXTRA_HUMIDITY = "humidity";
public static final String EXTRA_WIND = "wind";
public static final String EXTRA_LOW = "todays_low";
public static final String EXTRA_HIGH = "todays_high";
private Context mContext;
private boolean mShowLocation;
BroadcastReceiver weatherReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
updateWeather(intent);
}
};
public WeatherText(Context context, AttributeSet attrs) {
super(context, attrs);
mContext = context;
ContentResolver resolver = mContext.getContentResolver();
mShowLocation = Settings.System.getInt(resolver, Settings.System.WEATHER_SHOW_LOCATION, 0) == 1;
}
@Override
protected void onAttachedToWindow() {
super.onAttachedToWindow();
if (!mAttached) {
mAttached = true;
IntentFilter filter = new IntentFilter("com.aokp.romcontrol.INTENT_WEATHER_UPDATE");
mContext.registerReceiver(weatherReceiver, filter, null, getHandler());
}
}
@Override
protected void onDetachedFromWindow() {
super.onDetachedFromWindow();
if (mAttached) {
mContext.unregisterReceiver(weatherReceiver);
mAttached = false;
}
}
public void updateWeather(Intent intent) {
String wText = (mShowLocation) ? (intent.getCharSequenceExtra(EXTRA_CITY) + ", " + intent.getCharSequenceExtra(EXTRA_TEMP) + ", "
+ intent.getCharSequenceExtra(EXTRA_CONDITION)) : (intent.getCharSequenceExtra(EXTRA_TEMP) + ", "
+ intent.getCharSequenceExtra(EXTRA_CONDITION));
this.setText(wText);
}
}