+import android.provider.Settings;
import android.provider.Settings.Global;
import android.service.notification.ZenModeConfig;
import android.telecom.TelecomManager;
import android.text.format.DateFormat;
import android.util.Log;
import android.view.View;
+import android.nfc.NfcAdapter;
+ private final String mSlotNfc; //CT7G-3656
+ private static final String NFC_STATUSBAR_OPEN = "action.nfc_statusbar_open";
+ public static final String NFC_STATUSBAR_CLOSE = "action.nfc_statusbar_close";
+ mSlotNfc = resources.getString(com.android.internal.R.string.status_bar_nfc); //
+ filter.addAction(NfcAdapter.ACTION_ADAPTER_STATE_CHANGED);
+ filter.addAction(NFC_STATUSBAR_OPEN);
+ filter.addAction(NFC_STATUSBAR_CLOSE);
private final void updateNfcOpen(){
+ mIconController.setIcon(mSlotNfc, R.drawable.stat_sys_nfc,"NFC on");
+ mIconController.setIconVisibility(mSlotNfc, true);
+ }
+ private final void updateNfcClose(){
+ mIconController.setIconVisibility(mSlotNfc, false);
+ }
+ private final void updateNfc(Intent intent,Context context) {
+ final int state = intent.getIntExtra(NfcAdapter.EXTRA_ADAPTER_STATE, NfcAdapter.STATE_OFF);
+ final boolean isNfcIcon= Settings.Secure.getInt(context.getContentResolver(),
+ Settings.Secure.NFC_STATUSBAR_BUTTONS_ENABLED, 0) == 1;
+ switch (state) {
+ case NfcAdapter.STATE_OFF:
+ mIconController.setIconVisibility(mSlotNfc, false);
+ break;
+ case NfcAdapter.STATE_TURNING_OFF:
+ mIconController.setIconVisibility(mSlotNfc, false);
+ break;
+ case NfcAdapter.STATE_ON:
+ if(isNfcIcon){
+ mIconController.setIcon(mSlotNfc, R.drawable.stat_sys_nfc,
+ "NFC on");
+ mIconController.setIconVisibility(mSlotNfc, isNfcIcon);
+ }
+ break;
+ case NfcAdapter.STATE_TURNING_ON:
+ break;
+ }
+ }
private String buildAlarmContentDescription() {
if (mNextAlarm == null) {
return mResources.getString(R.string.status_bar_alarm);
@@ -776,6 +814,15 @@ public class PhoneStatusBarPolicy
case AudioManager.ACTION_HEADSET_PLUG:
updateHeadsetPlug(intent);
break;
+ case NfcAdapter.ACTION_ADAPTER_STATE_CHANGED:
+ updateNfc(intent,context);
+ break;
+ case NFC_STATUSBAR_OPEN:
+ updateNfcOpen();
+ break;
+ case NFC_STATUSBAR_CLOSE:
+ updateNfcClose();
+ break;
/// M: [Multi-User] Register Alarm intent by user @{
private String buildAlarmContentDescription() {
if (mNextAlarm == null) {
return mResources.getString(R.string.status_bar_alarm);
@@ -776,6 +814,15 @@ public class PhoneStatusBarPolicy
case AudioManager.ACTION_HEADSET_PLUG:
updateHeadsetPlug(intent);
break;
+ case NfcAdapter.ACTION_ADAPTER_STATE_CHANGED:
+ updateNfc(intent,context);
+ break;
+ case NFC_STATUSBAR_OPEN:
+ updateNfcOpen();
+ break;
+ case NFC_STATUSBAR_CLOSE:
+ updateNfcClose();
+ break;