package com.lechucksoftware.proxy.proxysettings.ui.components; import android.content.Context; import android.text.Spannable; import android.text.SpannableStringBuilder; import android.text.TextUtils; import android.text.style.StyleSpan; import android.util.AttributeSet; import android.view.LayoutInflater; import android.view.View; import android.widget.LinearLayout; import android.widget.TextView; import com.lechucksoftware.proxy.proxysettings.R; import be.shouldit.proxy.lib.WiFiApConfig; import be.shouldit.proxy.lib.utils.ProxyUtils; import butterknife.ButterKnife; import butterknife.InjectView; /** * Created by marco on 02/12/13. */ public class WifiAp extends LinearLayout { private Context context; private WiFiApConfig wifiApConfig; private StyleSpan bss = new StyleSpan(android.graphics.Typeface.BOLD); @InjectView(R.id.wifi_name) TextView wifiName; @InjectView(R.id.wifi_status) TextView wifiStatus; // @InjectView(R.id.wifi_status) TextView wifiStatus; @InjectView(R.id.wifi_ap_signal_icon) WifiSignal wifiSignal; public WifiAp(Context ctx, AttributeSet attrs) { super(ctx, attrs); context = ctx; readStyleParameters(context,attrs); LayoutInflater inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); View v = inflater.inflate(R.layout.wifi_ap, this); ButterKnife.inject(this, v); } private void readStyleParameters(Context context, AttributeSet attributeSet) { // TypedArray a = context.obtainStyledAttributes(attributeSet, R.styleable.WifiSignal); // // try // { // text = a.getString(R.styleable.WifiSignal_text); // } // finally // { // a.recycle(); // } } private void refreshUI() { if (wifiApConfig != null) { wifiName.setText(ProxyUtils.cleanUpSSID(wifiApConfig.getSSID())); SpannableStringBuilder ssb = new SpannableStringBuilder(); String securityTitle = context.getString(R.string.security); String securityString = ProxyUtils.getSecurityString(wifiApConfig, context, true); ssb.append(securityTitle); ssb.append(" " + securityString); ssb.setSpan(bss, 0, securityTitle.length(), Spannable.SPAN_INCLUSIVE_INCLUSIVE); wifiStatus.setText(ssb); } else { wifiName.setText(R.string.not_available); wifiStatus.setText(R.string.not_available); } } public void setConfiguration(WiFiApConfig configuration) { wifiApConfig = configuration; wifiSignal.setConfiguration(wifiApConfig); refreshUI(); } }