Loading android/app/src/com/android/bluetooth/btservice/AdapterService.java +4 −1 Original line number Diff line number Diff line Loading @@ -2859,8 +2859,11 @@ public class AdapterService extends Service { : AlarmManager.ELAPSED_REALTIME; Intent intent = new Intent(ACTION_ALARM_WAKEUP); // TODO(b/171825892) Please replace FLAG_MUTABLE_UNAUDITED below // with either FLAG_IMMUTABLE (recommended) or FLAG_MUTABLE. mPendingAlarm = PendingIntent.getBroadcast(this, 0, intent, PendingIntent.FLAG_ONE_SHOT); PendingIntent.getBroadcast(this, 0, intent, PendingIntent.FLAG_ONE_SHOT | PendingIntent.FLAG_MUTABLE_UNAUDITED); mAlarmManager.setExact(type, wakeupTime, mPendingAlarm); return true; } Loading android/app/src/com/android/bluetooth/gatt/ScanManager.java +4 −1 Original line number Diff line number Diff line Loading @@ -539,7 +539,10 @@ public class ScanManager { mAlarmManager = (AlarmManager) mService.getSystemService(Context.ALARM_SERVICE); Intent batchIntent = new Intent(ACTION_REFRESH_BATCHED_SCAN, null); mBatchScanIntervalIntent = PendingIntent.getBroadcast(mService, 0, batchIntent, 0); // TODO(b/171825892) Please replace FLAG_MUTABLE_UNAUDITED below // with either FLAG_IMMUTABLE (recommended) or FLAG_MUTABLE. mBatchScanIntervalIntent = PendingIntent.getBroadcast(mService, 0, batchIntent, PendingIntent.FLAG_MUTABLE_UNAUDITED); IntentFilter filter = new IntentFilter(); filter.addAction(ACTION_REFRESH_BATCHED_SCAN); mBatchAlarmReceiver = new BroadcastReceiver() { Loading android/app/src/com/android/bluetooth/map/BluetoothMapContentObserver.java +12 −3 Original line number Diff line number Diff line Loading @@ -2856,8 +2856,11 @@ public class BluetoothMapContentObserver { sentIntent.putExtra(EXTRA_MESSAGE_SENT_TRANSPARENT, transparent); sentIntent.putExtra(EXTRA_MESSAGE_SENT_RETRY, retry); //sentIntent.setDataAndNormalize(btMmsUri); // TODO(b/171825892) Please replace FLAG_MUTABLE_UNAUDITED below // with either FLAG_IMMUTABLE (recommended) or FLAG_MUTABLE. PendingIntent pendingSendIntent = PendingIntent.getBroadcast(mContext, 0, sentIntent, 0); PendingIntent.getBroadcast(mContext, 0, sentIntent, PendingIntent.FLAG_MUTABLE_UNAUDITED); SmsManager.getDefault() .sendMultimediaMessage(mContext, btMmsUri, null/*locationUrl*/, null/*configOverrides*/, Loading Loading @@ -3204,9 +3207,12 @@ public class BluetoothMapContentObserver { "message/" + Long.toString(msgInfo.id) + msgInfo.timestamp + i); intentDelivery.putExtra(EXTRA_MESSAGE_SENT_HANDLE, msgInfo.id); intentDelivery.putExtra(EXTRA_MESSAGE_SENT_TIMESTAMP, msgInfo.timestamp); // TODO(b/171825892) Please replace FLAG_MUTABLE_UNAUDITED below // with either FLAG_IMMUTABLE (recommended) or FLAG_MUTABLE. PendingIntent pendingIntentDelivery = PendingIntent.getBroadcast(mContext, 0, intentDelivery, PendingIntent.FLAG_UPDATE_CURRENT); PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_MUTABLE_UNAUDITED); intentSent = new Intent(ACTION_MESSAGE_SENT, null); /* Add msgId and part number to ensure the intents are different, and we Loading @@ -3219,9 +3225,12 @@ public class BluetoothMapContentObserver { intentSent.putExtra(EXTRA_MESSAGE_SENT_RETRY, msgInfo.retry); intentSent.putExtra(EXTRA_MESSAGE_SENT_TRANSPARENT, msgInfo.transparent); // TODO(b/171825892) Please replace FLAG_MUTABLE_UNAUDITED below // with either FLAG_IMMUTABLE (recommended) or FLAG_MUTABLE. PendingIntent pendingIntentSent = PendingIntent.getBroadcast(mContext, 0, intentSent, PendingIntent.FLAG_UPDATE_CURRENT); PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_MUTABLE_UNAUDITED); // We use the same pending intent for all parts, but do not set the one shot flag. deliveryIntents.add(pendingIntentDelivery); Loading android/app/src/com/android/bluetooth/map/BluetoothMapService.java +8 −2 Original line number Diff line number Diff line Loading @@ -950,7 +950,10 @@ public class BluetoothMapService extends ProfileService { } mRemoveTimeoutMsg = true; Intent timeoutIntent = new Intent(USER_CONFIRM_TIMEOUT_ACTION); PendingIntent pIntent = PendingIntent.getBroadcast(this, 0, timeoutIntent, 0); // TODO(b/171825892) Please replace FLAG_MUTABLE_UNAUDITED below // with either FLAG_IMMUTABLE (recommended) or FLAG_MUTABLE. PendingIntent pIntent = PendingIntent.getBroadcast(this, 0, timeoutIntent, PendingIntent.FLAG_MUTABLE_UNAUDITED); mAlarmManager.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + USER_CONFIRM_TIMEOUT_VALUE, pIntent); } Loading @@ -960,7 +963,10 @@ public class BluetoothMapService extends ProfileService { Log.d(TAG, "cancelUserTimeOutAlarm()"); } Intent timeoutIntent = new Intent(USER_CONFIRM_TIMEOUT_ACTION); PendingIntent pIntent = PendingIntent.getBroadcast(this, 0, timeoutIntent, 0); // TODO(b/171825892) Please replace FLAG_MUTABLE_UNAUDITED below // with either FLAG_IMMUTABLE (recommended) or FLAG_MUTABLE. PendingIntent pIntent = PendingIntent.getBroadcast(this, 0, timeoutIntent, PendingIntent.FLAG_MUTABLE_UNAUDITED); pIntent.cancel(); AlarmManager alarmManager = (AlarmManager) this.getSystemService(Context.ALARM_SERVICE); Loading android/app/src/com/android/bluetooth/opp/BluetoothOppNotification.java +36 −11 Original line number Diff line number Diff line Loading @@ -390,7 +390,10 @@ class BluetoothOppNotification { intent.setClassName(Constants.THIS_PACKAGE_NAME, BluetoothOppReceiver.class.getName()); intent.setDataAndNormalize(Uri.parse(BluetoothShare.CONTENT_URI + "/" + item.id)); b.setContentIntent(PendingIntent.getBroadcast(mContext, 0, intent, 0)); // TODO(b/171825892) Please replace FLAG_MUTABLE_UNAUDITED below // with either FLAG_IMMUTABLE (recommended) or FLAG_MUTABLE. b.setContentIntent(PendingIntent.getBroadcast(mContext, 0, intent, PendingIntent.FLAG_MUTABLE_UNAUDITED)); mNotificationMgr.notify(NOTIFICATION_ID_PROGRESS, b.build()); } } Loading Loading @@ -457,10 +460,14 @@ class BluetoothOppNotification { com.android.internal.R.color .system_notification_accent_color, mContext.getTheme())) // TODO(b/171825892) Please replace FLAG_MUTABLE_UNAUDITED below // with either FLAG_IMMUTABLE (recommended) or FLAG_MUTABLE. .setContentIntent( PendingIntent.getBroadcast(mContext, 0, contentIntent, 0)) PendingIntent.getBroadcast(mContext, 0, contentIntent, PendingIntent.FLAG_MUTABLE_UNAUDITED)) .setDeleteIntent( PendingIntent.getBroadcast(mContext, 0, deleteIntent, 0)) PendingIntent.getBroadcast(mContext, 0, deleteIntent, PendingIntent.FLAG_MUTABLE_UNAUDITED)) .setWhen(timeStamp) .setLocalOnly(true) .build(); Loading Loading @@ -523,10 +530,15 @@ class BluetoothOppNotification { com.android.internal.R.color .system_notification_accent_color, mContext.getTheme())) // TODO(b/171825892) Please replace FLAG_MUTABLE_UNAUDITED below // with either FLAG_IMMUTABLE (recommended) or FLAG_MUTABLE. .setContentIntent( PendingIntent.getBroadcast(mContext, 0, contentIntent, 0)) PendingIntent.getBroadcast(mContext, 0, contentIntent, PendingIntent.FLAG_MUTABLE_UNAUDITED)) .setDeleteIntent( PendingIntent.getBroadcast(mContext, 0, deleteIntent, 0)) PendingIntent.getBroadcast(mContext, 0, deleteIntent, PendingIntent.FLAG_MUTABLE_UNAUDITED)) .setWhen(timeStamp) .setLocalOnly(true) .build(); Loading Loading @@ -561,14 +573,19 @@ class BluetoothOppNotification { new Notification.Action.Builder(Icon.createWithResource(mContext, R.drawable.ic_decline), mContext.getText(R.string.incoming_file_confirm_cancel), // TODO(b/171825892) Please replace FLAG_MUTABLE_UNAUDITED below // with either FLAG_IMMUTABLE (recommended) or FLAG_MUTABLE. PendingIntent.getBroadcast(mContext, 0, new Intent(baseIntent).setAction(Constants.ACTION_DECLINE), 0)).build(); PendingIntent.FLAG_MUTABLE_UNAUDITED)).build(); Notification.Action actionAccept = new Notification.Action.Builder( Icon.createWithResource(mContext,R.drawable.ic_accept), mContext.getText(R.string.incoming_file_confirm_ok), // TODO(b/171825892) Please replace FLAG_MUTABLE_UNAUDITED below // with either FLAG_IMMUTABLE (recommended) or FLAG_MUTABLE. PendingIntent.getBroadcast(mContext, 0, new Intent(baseIntent).setAction(Constants.ACTION_ACCEPT), 0)).build(); new Intent(baseIntent).setAction(Constants.ACTION_ACCEPT), PendingIntent.FLAG_MUTABLE_UNAUDITED)).build(); Notification public_n = new Notification.Builder(mContext, OPP_NOTIFICATION_CHANNEL).setOnlyAlertOnce( true) Loading @@ -576,11 +593,15 @@ class BluetoothOppNotification { .setWhen(info.mTimeStamp) .addAction(actionDecline) .addAction(actionAccept) // TODO(b/171825892) Please replace FLAG_MUTABLE_UNAUDITED below // with either FLAG_IMMUTABLE (recommended) or FLAG_MUTABLE. .setContentIntent(PendingIntent.getBroadcast(mContext, 0, new Intent(baseIntent).setAction( Constants.ACTION_INCOMING_FILE_CONFIRM), 0)) Constants.ACTION_INCOMING_FILE_CONFIRM), PendingIntent.FLAG_MUTABLE_UNAUDITED)) .setDeleteIntent(PendingIntent.getBroadcast(mContext, 0, new Intent(baseIntent).setAction(Constants.ACTION_HIDE), 0)) new Intent(baseIntent).setAction(Constants.ACTION_HIDE), PendingIntent.FLAG_MUTABLE_UNAUDITED)) .setColor(mContext.getResources() .getColor( com.android.internal.R.color Loading @@ -601,11 +622,15 @@ class BluetoothOppNotification { true) .setOngoing(true) .setWhen(info.mTimeStamp) // TODO(b/171825892) Please replace FLAG_MUTABLE_UNAUDITED below // with either FLAG_IMMUTABLE (recommended) or FLAG_MUTABLE. .setContentIntent(PendingIntent.getBroadcast(mContext, 0, new Intent(baseIntent).setAction( Constants.ACTION_INCOMING_FILE_CONFIRM), 0)) Constants.ACTION_INCOMING_FILE_CONFIRM), PendingIntent.FLAG_MUTABLE_UNAUDITED)) .setDeleteIntent(PendingIntent.getBroadcast(mContext, 0, new Intent(baseIntent).setAction(Constants.ACTION_HIDE), 0)) new Intent(baseIntent).setAction(Constants.ACTION_HIDE), PendingIntent.FLAG_MUTABLE_UNAUDITED)) .setColor(mContext.getResources() .getColor( com.android.internal.R.color Loading Loading
android/app/src/com/android/bluetooth/btservice/AdapterService.java +4 −1 Original line number Diff line number Diff line Loading @@ -2859,8 +2859,11 @@ public class AdapterService extends Service { : AlarmManager.ELAPSED_REALTIME; Intent intent = new Intent(ACTION_ALARM_WAKEUP); // TODO(b/171825892) Please replace FLAG_MUTABLE_UNAUDITED below // with either FLAG_IMMUTABLE (recommended) or FLAG_MUTABLE. mPendingAlarm = PendingIntent.getBroadcast(this, 0, intent, PendingIntent.FLAG_ONE_SHOT); PendingIntent.getBroadcast(this, 0, intent, PendingIntent.FLAG_ONE_SHOT | PendingIntent.FLAG_MUTABLE_UNAUDITED); mAlarmManager.setExact(type, wakeupTime, mPendingAlarm); return true; } Loading
android/app/src/com/android/bluetooth/gatt/ScanManager.java +4 −1 Original line number Diff line number Diff line Loading @@ -539,7 +539,10 @@ public class ScanManager { mAlarmManager = (AlarmManager) mService.getSystemService(Context.ALARM_SERVICE); Intent batchIntent = new Intent(ACTION_REFRESH_BATCHED_SCAN, null); mBatchScanIntervalIntent = PendingIntent.getBroadcast(mService, 0, batchIntent, 0); // TODO(b/171825892) Please replace FLAG_MUTABLE_UNAUDITED below // with either FLAG_IMMUTABLE (recommended) or FLAG_MUTABLE. mBatchScanIntervalIntent = PendingIntent.getBroadcast(mService, 0, batchIntent, PendingIntent.FLAG_MUTABLE_UNAUDITED); IntentFilter filter = new IntentFilter(); filter.addAction(ACTION_REFRESH_BATCHED_SCAN); mBatchAlarmReceiver = new BroadcastReceiver() { Loading
android/app/src/com/android/bluetooth/map/BluetoothMapContentObserver.java +12 −3 Original line number Diff line number Diff line Loading @@ -2856,8 +2856,11 @@ public class BluetoothMapContentObserver { sentIntent.putExtra(EXTRA_MESSAGE_SENT_TRANSPARENT, transparent); sentIntent.putExtra(EXTRA_MESSAGE_SENT_RETRY, retry); //sentIntent.setDataAndNormalize(btMmsUri); // TODO(b/171825892) Please replace FLAG_MUTABLE_UNAUDITED below // with either FLAG_IMMUTABLE (recommended) or FLAG_MUTABLE. PendingIntent pendingSendIntent = PendingIntent.getBroadcast(mContext, 0, sentIntent, 0); PendingIntent.getBroadcast(mContext, 0, sentIntent, PendingIntent.FLAG_MUTABLE_UNAUDITED); SmsManager.getDefault() .sendMultimediaMessage(mContext, btMmsUri, null/*locationUrl*/, null/*configOverrides*/, Loading Loading @@ -3204,9 +3207,12 @@ public class BluetoothMapContentObserver { "message/" + Long.toString(msgInfo.id) + msgInfo.timestamp + i); intentDelivery.putExtra(EXTRA_MESSAGE_SENT_HANDLE, msgInfo.id); intentDelivery.putExtra(EXTRA_MESSAGE_SENT_TIMESTAMP, msgInfo.timestamp); // TODO(b/171825892) Please replace FLAG_MUTABLE_UNAUDITED below // with either FLAG_IMMUTABLE (recommended) or FLAG_MUTABLE. PendingIntent pendingIntentDelivery = PendingIntent.getBroadcast(mContext, 0, intentDelivery, PendingIntent.FLAG_UPDATE_CURRENT); PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_MUTABLE_UNAUDITED); intentSent = new Intent(ACTION_MESSAGE_SENT, null); /* Add msgId and part number to ensure the intents are different, and we Loading @@ -3219,9 +3225,12 @@ public class BluetoothMapContentObserver { intentSent.putExtra(EXTRA_MESSAGE_SENT_RETRY, msgInfo.retry); intentSent.putExtra(EXTRA_MESSAGE_SENT_TRANSPARENT, msgInfo.transparent); // TODO(b/171825892) Please replace FLAG_MUTABLE_UNAUDITED below // with either FLAG_IMMUTABLE (recommended) or FLAG_MUTABLE. PendingIntent pendingIntentSent = PendingIntent.getBroadcast(mContext, 0, intentSent, PendingIntent.FLAG_UPDATE_CURRENT); PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_MUTABLE_UNAUDITED); // We use the same pending intent for all parts, but do not set the one shot flag. deliveryIntents.add(pendingIntentDelivery); Loading
android/app/src/com/android/bluetooth/map/BluetoothMapService.java +8 −2 Original line number Diff line number Diff line Loading @@ -950,7 +950,10 @@ public class BluetoothMapService extends ProfileService { } mRemoveTimeoutMsg = true; Intent timeoutIntent = new Intent(USER_CONFIRM_TIMEOUT_ACTION); PendingIntent pIntent = PendingIntent.getBroadcast(this, 0, timeoutIntent, 0); // TODO(b/171825892) Please replace FLAG_MUTABLE_UNAUDITED below // with either FLAG_IMMUTABLE (recommended) or FLAG_MUTABLE. PendingIntent pIntent = PendingIntent.getBroadcast(this, 0, timeoutIntent, PendingIntent.FLAG_MUTABLE_UNAUDITED); mAlarmManager.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + USER_CONFIRM_TIMEOUT_VALUE, pIntent); } Loading @@ -960,7 +963,10 @@ public class BluetoothMapService extends ProfileService { Log.d(TAG, "cancelUserTimeOutAlarm()"); } Intent timeoutIntent = new Intent(USER_CONFIRM_TIMEOUT_ACTION); PendingIntent pIntent = PendingIntent.getBroadcast(this, 0, timeoutIntent, 0); // TODO(b/171825892) Please replace FLAG_MUTABLE_UNAUDITED below // with either FLAG_IMMUTABLE (recommended) or FLAG_MUTABLE. PendingIntent pIntent = PendingIntent.getBroadcast(this, 0, timeoutIntent, PendingIntent.FLAG_MUTABLE_UNAUDITED); pIntent.cancel(); AlarmManager alarmManager = (AlarmManager) this.getSystemService(Context.ALARM_SERVICE); Loading
android/app/src/com/android/bluetooth/opp/BluetoothOppNotification.java +36 −11 Original line number Diff line number Diff line Loading @@ -390,7 +390,10 @@ class BluetoothOppNotification { intent.setClassName(Constants.THIS_PACKAGE_NAME, BluetoothOppReceiver.class.getName()); intent.setDataAndNormalize(Uri.parse(BluetoothShare.CONTENT_URI + "/" + item.id)); b.setContentIntent(PendingIntent.getBroadcast(mContext, 0, intent, 0)); // TODO(b/171825892) Please replace FLAG_MUTABLE_UNAUDITED below // with either FLAG_IMMUTABLE (recommended) or FLAG_MUTABLE. b.setContentIntent(PendingIntent.getBroadcast(mContext, 0, intent, PendingIntent.FLAG_MUTABLE_UNAUDITED)); mNotificationMgr.notify(NOTIFICATION_ID_PROGRESS, b.build()); } } Loading Loading @@ -457,10 +460,14 @@ class BluetoothOppNotification { com.android.internal.R.color .system_notification_accent_color, mContext.getTheme())) // TODO(b/171825892) Please replace FLAG_MUTABLE_UNAUDITED below // with either FLAG_IMMUTABLE (recommended) or FLAG_MUTABLE. .setContentIntent( PendingIntent.getBroadcast(mContext, 0, contentIntent, 0)) PendingIntent.getBroadcast(mContext, 0, contentIntent, PendingIntent.FLAG_MUTABLE_UNAUDITED)) .setDeleteIntent( PendingIntent.getBroadcast(mContext, 0, deleteIntent, 0)) PendingIntent.getBroadcast(mContext, 0, deleteIntent, PendingIntent.FLAG_MUTABLE_UNAUDITED)) .setWhen(timeStamp) .setLocalOnly(true) .build(); Loading Loading @@ -523,10 +530,15 @@ class BluetoothOppNotification { com.android.internal.R.color .system_notification_accent_color, mContext.getTheme())) // TODO(b/171825892) Please replace FLAG_MUTABLE_UNAUDITED below // with either FLAG_IMMUTABLE (recommended) or FLAG_MUTABLE. .setContentIntent( PendingIntent.getBroadcast(mContext, 0, contentIntent, 0)) PendingIntent.getBroadcast(mContext, 0, contentIntent, PendingIntent.FLAG_MUTABLE_UNAUDITED)) .setDeleteIntent( PendingIntent.getBroadcast(mContext, 0, deleteIntent, 0)) PendingIntent.getBroadcast(mContext, 0, deleteIntent, PendingIntent.FLAG_MUTABLE_UNAUDITED)) .setWhen(timeStamp) .setLocalOnly(true) .build(); Loading Loading @@ -561,14 +573,19 @@ class BluetoothOppNotification { new Notification.Action.Builder(Icon.createWithResource(mContext, R.drawable.ic_decline), mContext.getText(R.string.incoming_file_confirm_cancel), // TODO(b/171825892) Please replace FLAG_MUTABLE_UNAUDITED below // with either FLAG_IMMUTABLE (recommended) or FLAG_MUTABLE. PendingIntent.getBroadcast(mContext, 0, new Intent(baseIntent).setAction(Constants.ACTION_DECLINE), 0)).build(); PendingIntent.FLAG_MUTABLE_UNAUDITED)).build(); Notification.Action actionAccept = new Notification.Action.Builder( Icon.createWithResource(mContext,R.drawable.ic_accept), mContext.getText(R.string.incoming_file_confirm_ok), // TODO(b/171825892) Please replace FLAG_MUTABLE_UNAUDITED below // with either FLAG_IMMUTABLE (recommended) or FLAG_MUTABLE. PendingIntent.getBroadcast(mContext, 0, new Intent(baseIntent).setAction(Constants.ACTION_ACCEPT), 0)).build(); new Intent(baseIntent).setAction(Constants.ACTION_ACCEPT), PendingIntent.FLAG_MUTABLE_UNAUDITED)).build(); Notification public_n = new Notification.Builder(mContext, OPP_NOTIFICATION_CHANNEL).setOnlyAlertOnce( true) Loading @@ -576,11 +593,15 @@ class BluetoothOppNotification { .setWhen(info.mTimeStamp) .addAction(actionDecline) .addAction(actionAccept) // TODO(b/171825892) Please replace FLAG_MUTABLE_UNAUDITED below // with either FLAG_IMMUTABLE (recommended) or FLAG_MUTABLE. .setContentIntent(PendingIntent.getBroadcast(mContext, 0, new Intent(baseIntent).setAction( Constants.ACTION_INCOMING_FILE_CONFIRM), 0)) Constants.ACTION_INCOMING_FILE_CONFIRM), PendingIntent.FLAG_MUTABLE_UNAUDITED)) .setDeleteIntent(PendingIntent.getBroadcast(mContext, 0, new Intent(baseIntent).setAction(Constants.ACTION_HIDE), 0)) new Intent(baseIntent).setAction(Constants.ACTION_HIDE), PendingIntent.FLAG_MUTABLE_UNAUDITED)) .setColor(mContext.getResources() .getColor( com.android.internal.R.color Loading @@ -601,11 +622,15 @@ class BluetoothOppNotification { true) .setOngoing(true) .setWhen(info.mTimeStamp) // TODO(b/171825892) Please replace FLAG_MUTABLE_UNAUDITED below // with either FLAG_IMMUTABLE (recommended) or FLAG_MUTABLE. .setContentIntent(PendingIntent.getBroadcast(mContext, 0, new Intent(baseIntent).setAction( Constants.ACTION_INCOMING_FILE_CONFIRM), 0)) Constants.ACTION_INCOMING_FILE_CONFIRM), PendingIntent.FLAG_MUTABLE_UNAUDITED)) .setDeleteIntent(PendingIntent.getBroadcast(mContext, 0, new Intent(baseIntent).setAction(Constants.ACTION_HIDE), 0)) new Intent(baseIntent).setAction(Constants.ACTION_HIDE), PendingIntent.FLAG_MUTABLE_UNAUDITED)) .setColor(mContext.getResources() .getColor( com.android.internal.R.color Loading