From c1f4123488dceae1daa725d48875588848e86b0e Mon Sep 17 00:00:00 2001 From: Pragnya Paramita Date: Mon, 23 Mar 2015 15:52:44 +0530 Subject: Trebuchet: STK app rename customization for latam region. App name is read from SIM in STK app and sent via a broadcast. Name is operator specific. Launcher receives the broadcast, read the name and renames the STK app in all apps screen and workspace. Change-Id: If64b278360a0b8433e23e6678f04cdf30fe2cef1 CRs-Fixed: 797995 --- res/values/config.xml | 2 ++ src/com/android/launcher3/IconCache.java | 25 +++++++++++++++-- src/com/android/launcher3/LauncherApplication.java | 32 ++++++++++++++++++++++ 3 files changed, 57 insertions(+), 2 deletions(-) diff --git a/res/values/config.xml b/res/values/config.xml index fed4d416f..db5e47be1 100644 --- a/res/values/config.xml +++ b/res/values/config.xml @@ -122,4 +122,6 @@ false false true + + false diff --git a/src/com/android/launcher3/IconCache.java b/src/com/android/launcher3/IconCache.java index 03684f600..417314e78 100644 --- a/src/com/android/launcher3/IconCache.java +++ b/src/com/android/launcher3/IconCache.java @@ -59,6 +59,7 @@ public class IconCache { private static final int INITIAL_ICON_CACHE_CAPACITY = 50; private static final String RESOURCE_FILE_PREFIX = "icon_"; + private final String STK_PACKAGE_NAME = "com.android.stk"; // Empty class name is used for storing package default entry. private static final String EMPTY_CLASS_NAME = "."; @@ -331,6 +332,16 @@ public class IconCache { boolean usePackageIcon, int unreadNum) { CacheKey cacheKey = new CacheKey(componentName, user); CacheEntry entry = mCache.get(cacheKey); + boolean condition = (mContext.getResources(). + getBoolean(R.bool.config_launcher_stkAppRename)) + && info.getComponentName().getPackageName().toString() + .equalsIgnoreCase(STK_PACKAGE_NAME); + boolean isCustomTitle = false; + if (condition + && !TextUtils.isEmpty(((LauncherApplication) mContext) + .getStkAppName())) { + isCustomTitle = true; + } if (entry == null || unreadNum >= 0) { entry = new CacheEntry(); @@ -339,9 +350,19 @@ public class IconCache { if (info != null) { ComponentName labelKey = info.getComponentName(); if (labelCache != null && labelCache.containsKey(labelKey)) { - entry.title = labelCache.get(labelKey).toString(); + if (isCustomTitle) { + entry.title = ((LauncherApplication) mContext) + .getStkAppName(); + } else { + entry.title = labelCache.get(labelKey).toString(); + } } else { - entry.title = info.getLabel().toString(); + if (isCustomTitle) { + entry.title = ((LauncherApplication) mContext) + .getStkAppName(); + } else { + entry.title = info.getLabel().toString(); + } if (labelCache != null) { labelCache.put(labelKey, entry.title); } diff --git a/src/com/android/launcher3/LauncherApplication.java b/src/com/android/launcher3/LauncherApplication.java index 56432e769..d5a4f2891 100644 --- a/src/com/android/launcher3/LauncherApplication.java +++ b/src/com/android/launcher3/LauncherApplication.java @@ -17,6 +17,11 @@ package com.android.launcher3; import android.app.Application; +import android.content.BroadcastReceiver; +import android.content.Context; +import android.content.Intent; +import android.content.IntentFilter; + import com.android.launcher3.stats.LauncherStats; import com.android.launcher3.stats.internal.service.AggregationIntentService; @@ -26,6 +31,11 @@ public class LauncherApplication extends Application { public static boolean SHOW_CTAPP_FEATURE; public static String PACKAGE_NAME = ""; + private String mStkAppName = new String(); + private final String STK_PACKAGE_INTENT_ACTION_NAME = + "org.codeaurora.carrier.ACTION_TELEPHONY_SEND_STK_TITLE"; + private final String STK_APP_NAME = "StkTitle"; + private static LauncherStats sLauncherStats = null; /** @@ -48,10 +58,32 @@ public class LauncherApplication extends Application { SHOW_CTAPP_FEATURE = getResources().getBoolean(R.bool.config_launcher_page); LauncherAppState.setApplicationContext(this); LauncherAppState.getInstance(); + if (getResources().getBoolean(R.bool.config_launcher_stkAppRename)) { + registerAppNameChangeReceiver(); + } sLauncherStats = LauncherStats.createInstance(this); AggregationIntentService.scheduleService(this); } + private void registerAppNameChangeReceiver() { + IntentFilter intentFilter = new IntentFilter(STK_PACKAGE_INTENT_ACTION_NAME); + registerReceiver(appNameChangeReceiver, intentFilter); + } + + /** + * Receiver for STK Name change broadcast + */ + private BroadcastReceiver appNameChangeReceiver = new BroadcastReceiver() { + @Override + public void onReceive(Context context, Intent intent) { + mStkAppName = intent.getStringExtra(STK_APP_NAME); + } + }; + + public String getStkAppName(){ + return mStkAppName; + } + @Override public void onTerminate() { super.onTerminate(); -- cgit v1.2.3