diff options
author | Pragnya Paramita <prgnya@codeaurora.org> | 2015-03-23 15:52:44 +0530 |
---|---|---|
committer | Michael Bestas <mikeioannina@gmail.com> | 2016-09-16 19:07:41 +0300 |
commit | 66c03a84a78dac8db026d1eee73c5210c3310620 (patch) | |
tree | 5573bcebffd257ad7fce7031441bf650f8e8ac03 | |
parent | e646d5494e2bf14d9cab4363bbaeba49215ad34a (diff) | |
download | packages_apps_Trebuchet-66c03a84a78dac8db026d1eee73c5210c3310620.tar.gz packages_apps_Trebuchet-66c03a84a78dac8db026d1eee73c5210c3310620.tar.bz2 packages_apps_Trebuchet-66c03a84a78dac8db026d1eee73c5210c3310620.zip |
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
-rw-r--r-- | res/values/config.xml | 1 | ||||
-rw-r--r-- | src/com/android/launcher3/IconCache.java | 25 | ||||
-rw-r--r-- | 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 @@ <bool name="config_largeHeap">false</bool> <bool name="is_tablet">false</bool> <bool name="is_large_tablet">false</bool> + <bool name="config_launcher_stkAppRename">false</bool> <!-- Max number of page indicators to show --> <integer name="config_maxNumberOfPageIndicatorsToShow">21</integer> 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); |