diff --git a/src/com/android/settings/datausage/DataUsagePreference.java b/src/com/android/settings/datausage/DataUsagePreference.java
index da2d52a..e668507 100644
--- a/src/com/android/settings/datausage/DataUsagePreference.java
+++ b/src/com/android/settings/datausage/DataUsagePreference.java
@@ -56,11 +56,19 @@
         DataUsageController controller = new DataUsageController(getContext());
         DataUsageController.DataUsageInfo usageInfo = controller.getDataUsageInfo(mTemplate);
         if (FeatureFlagUtils.isEnabled(getContext(), FeatureFlags.DATA_USAGE_SETTINGS_V2)) {
-          setTitle(getContext().getString(R.string.app_cellular_data_usage));
+            if (mTemplate.isMatchRuleMobile()) {
+                setTitle(getContext().getString(R.string.app_cellular_data_usage));
+            } else {
+                setTitle(mTitleRes);
+                setSummary(getContext().getString(R.string.data_usage_template,
+                        Formatter.formatFileSize(getContext(), usageInfo.usageLevel),
+                                usageInfo.period));
+            }
         } else {
-          setTitle(getContext().getString(R.string.cellular_data_usage));
-          setSummary(getContext().getString(R.string.data_usage_template,
-                  Formatter.formatFileSize(getContext(), usageInfo.usageLevel), usageInfo.period));
+            setTitle(mTitleRes);
+            setSummary(getContext().getString(R.string.data_usage_template,
+                    Formatter.formatFileSize(getContext(), usageInfo.usageLevel),
+                            usageInfo.period));
         }
         setIntent(getIntent());
     }
@@ -75,13 +83,17 @@
                 .setDestination(DataUsageList.class.getName())
                 .setSourceMetricsCategory(MetricsProto.MetricsEvent.VIEW_UNKNOWN);
         if (FeatureFlagUtils.isEnabled(getContext(), FeatureFlags.DATA_USAGE_SETTINGS_V2)) {
-          launcher.setTitle(getContext().getString(R.string.app_cellular_data_usage));
+            if (mTemplate.isMatchRuleMobile()) {
+                launcher.setTitle(getContext().getString(R.string.app_cellular_data_usage));
+            } else {
+                launcher.setTitle(mTitleRes);
+            }
         } else {
-          if (mTitleRes > 0) {
-            launcher.setTitle(mTitleRes);
-          } else {
-            launcher.setTitle(getTitle());
-          }
+            if (mTitleRes > 0) {
+                launcher.setTitle(mTitleRes);
+            } else {
+                launcher.setTitle(getTitle());
+            }
         }
         return launcher.toIntent();
     }
