[Samsung Galaxy S (4G Model)] jeffsf:
What is the compelling value of removing the notification? (I'm a product manager by day.) The reality is that your phone probably is data roaming, though perhaps on a network that you are not billed for.

Just trying to prioritize, since this would require a user switch to enable/disable.

Looks like someone else found a hack to remove it from a ROM if you wanted it yourself.

Posted from my SGS4G, thanks to Team Acid development

---------- Post added at 09:06 AM ---------- Previous post was at 08:36 AM ----------

The "hack" mentioned above could be performed using "the usual" zip and apktools by any user. Note that the hack simply removes the notification, it does not change the fact that it was reported that the phone has entered a data-roaming state.

Additionally, since CM9 can be compiled from source by anyone with a "reasonable" computer, especially as Ubuntu can be run side-by-side with Windows, or under VirtualBox, the source can be patched and a custom version compiled.

The impacted source appears to be packages/apps/Phone/src/com/android/phone/NotificationMgr.java

1262 /**
1263 * Shows the "data disconnected due to roaming" notification, which
1264 * appears when you lose data connectivity because you're roaming and
1265 * you have the "data roaming" feature turned off.
1266 */
1267 /* package */ void showDataDisconnectedRoaming() {
1268 if (DBG) log("showDataDisconnectedRoaming()...");
1269
1270 Intent intent = new Intent(mContext,
1271 com.android.phone.Settings.class); // "Mobile network settings" screen / dialog
1272
1273 Notification notification = new Notification(
1274 android.R.drawable.stat_sys_warning, // icon
1275 null, // tickerText
1276 System.currentTimeMillis());
1277 notification.setLatestEventInfo(
1278 mContext, // Context
1279 mContext.getString(R.string.roaming), // expandedTitle
1280 mContext.getString(R.string.roaming_reenable_message), // expandedText
1281 PendingIntent.getActivity(mContext, 0, intent, 0)); // contentIntent
1282
1283 mNotificationManager.notify(
1284 DATA_DISCONNECTED_ROAMING_NOTIFICATION,
1285 notification);
1286 }

Replacing that with something like the following would permanently disable the notification. It could not be re-enabled (without flashing something else) if you were traveling to a location where notification of data connectivity was important to you.

/**
* Shows the "data disconnected due to roaming" notification, which
* appears when you lose data connectivity because you're roaming and
* you have the "data roaming" feature turned off.
*/
/* package */ void showDataDisconnectedRoaming() {
if (DBG) log("showDataDisconnectedRoaming() -- disabled in this version");
}

Edit -- I've attached a build of Phone.apk that may disable the notification (and still work as a phone).

Please, please backup your current Phone.apk and all before installing and confirm that the phone works as expected, especially before entering any situation when the phone might be deemed critical for any emergency, business, personal, or other need. In at least one case, the user was not able to make phone calls after installing this on a non-CM9 ROM.

The Phone.apk was built using the current CM9 build tree, as configured by the TeamAcid local_manifest.xml

This patch is provided without warranty and under the terms of the original 'Apache 2.0" license, found in the NOTICE file in both the object and source attached. Source has been provided here as a courtesy to other developers as well as to meed the retention requirements of section 4(c) of the license.