From 66c03a84a78dac8db026d1eee73c5210c3310620 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 Issue: FEIJAO-815 --- res/values/config.xml | 1 + src/com/android/launcher3/IconCache.java | 25 +++++++++++++++-- src/com/android/launcher3/LauncherApplication.java | 31 ++++++++++++++++++++++ 3 files changed, 55 insertions(+), 2 deletions(-) diff --git a/res/values/config.xml b/res/values/config.xml index 4d3f01111..8fdd38283 100644 --- a/res/values/config.xml +++ b/res/values/config.xml @@ -7,6 +7,7 @@ false false false + false 21 diff --git a/src/com/android/launcher3/IconCache.java b/src/com/android/launcher3/IconCache.java index ca5545df0..cecfb6dd3 100644 --- a/src/com/android/launcher3/IconCache.java +++ b/src/com/android/launcher3/IconCache.java @@ -66,6 +66,7 @@ import java.util.Stack; public class IconCache { private static final String TAG = "Launcher.IconCache"; + private final String STK_PACKAGE_NAME = "com.android.stk"; private static final int INITIAL_ICON_CACHE_CAPACITY = 50; @@ -567,6 +568,16 @@ public class IconCache { UserHandleCompat user, boolean usePackageIcon, boolean useLowResIcon) { ComponentKey cacheKey = new ComponentKey(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 || (entry.isLowResIcon && !useLowResIcon)) { entry = new CacheEntry(); mCache.put(cacheKey, entry); @@ -583,7 +594,12 @@ public class IconCache { if (DEBUG) Log.d(TAG, "using package default icon for " + componentName.toShortString()); entry.icon = packageEntry.icon; - entry.title = packageEntry.title; + if (isCustomTitle) { + entry.title = ((LauncherApplication) mContext) + .getStkAppName(); + } else { + entry.title = packageEntry.title; + } entry.contentDescription = packageEntry.contentDescription; } } @@ -596,7 +612,12 @@ public class IconCache { } if (TextUtils.isEmpty(entry.title) && info != null) { - entry.title = info.getLabel(); + if (isCustomTitle) { + entry.title = ((LauncherApplication) mContext) + .getStkAppName(); + } else { + entry.title = info.getLabel(); + } entry.contentDescription = mUserManager.getBadgedLabelForUser(entry.title, user); } } diff --git a/src/com/android/launcher3/LauncherApplication.java b/src/com/android/launcher3/LauncherApplication.java index 896963e6d..a750fc270 100644 --- a/src/com/android/launcher3/LauncherApplication.java +++ b/src/com/android/launcher3/LauncherApplication.java @@ -17,6 +17,10 @@ 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 +30,11 @@ import com.cyanogen.ambient.common.api.AmbientApiClient; public class LauncherApplication extends Application { + 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; private AmbientApiClient mClient; @@ -45,10 +54,32 @@ public class LauncherApplication extends Application { .addApi(AnalyticsServices.API) .build(); mClient.connect(); + if (getResources().getBoolean(R.bool.config_launcher_stkAppRename)) { + registerAppNameChangeReceiver(); + } sLauncherStats = LauncherStats.getInstance(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; + } + public void sendEvent(Event event) { if (mClient.isConnected()) { AnalyticsServices.AnalyticsApi.sendEvent(mClient, event); -- cgit v1.2.3