长按桌面进入小部件,选择“设置快捷方式”里任意一个添加到桌面,在设置中将语音设置为英语,添加的快捷方式依然是中文

【操作步骤】:长按桌面进入小部件--选择“设置快捷方式”里任意一个添加到桌面--在设置中将语音设置为英语--观察
【测试结果】:添加的设置快捷方式依然为中文
【预期结果】:显示为英文

【概率】:5/5


修改Launcher3 中的LauncherModel.java类


--- a/src/com/android/launcher3/LauncherModel.java
+++ b/src/com/android/launcher3/LauncherModel.java
@@ -1906,6 +1906,14 @@ public class LauncherModel extends BroadcastReceiver {
                                             iconPackageIndex, iconResourceIndex, iconIndex,
                                             titleIndex);


+                                    /* add by liuyanfeng 20150617 start */
+                                    String customTitle = getShortcutInfoTitle(manager, intent,
+                                            context, c, iconIndex, titleIndex, mLabelCache);
+                                    if (customTitle != null) {
+                                        info.title = customTitle;
+                                    }
+                                    /* end */
+
                                     // App shortcuts that used to be automatically added to Launcher
                                     // didn't always have the correct intent flags set, so do that
                                     // here
@@ -2199,6 +2207,55 @@ public class LauncherModel extends BroadcastReceiver {
             return loadedOldDb;
         }


+        /* add by liuyanfeng 20150617 start */
+        public String getShortcutInfoTitle(PackageManager manager, Intent intent,
+                Context context, Cursor c, int iconIndex, int titleIndex,
+                HashMap<Object, CharSequence> labelCache) {
+            ComponentName componentName = intent.getComponent();
+            ResolveInfo resolveInfo = null;
+            CharSequence customTitle = null;
+            ComponentName oldComponent = intent.getComponent();
+            Intent newIntent = new Intent(intent.getAction(), null);
+            newIntent.addCategory(Intent.CATEGORY_LAUNCHER);
+            newIntent.setPackage(oldComponent.getPackageName());
+            List<ResolveInfo> infos = manager.queryIntentActivities(newIntent, 0);
+            for (ResolveInfo i : infos) {
+                ComponentName cn = new ComponentName(i.activityInfo.packageName,
+                        i.activityInfo.name);
+                if (cn.equals(oldComponent)) {
+                    resolveInfo = i;
+                }
+            }
+            if (resolveInfo == null) {
+                resolveInfo = manager.resolveActivity(intent, 0);
+            }
+
+            if (resolveInfo != null) {
+                ComponentName key = LauncherModel
+                        .getComponentNameFromResolveInfo(resolveInfo);
+                if (labelCache != null && labelCache.containsKey(key)) {
+                    customTitle = labelCache.get(key);
+                } else {
+                    customTitle = resolveInfo.activityInfo.loadLabel(manager);
+                    if (labelCache != null) {
+                        labelCache.put(key, customTitle);
+                    }
+                }
+            }
+
+            if (customTitle == null) {
+                if (c != null) {
+                    customTitle = c.getString(titleIndex);
+                }
+            }
+
+            if (customTitle == null) {
+                customTitle = componentName.getClassName();
+            }
+            return customTitle.toString();
+        }
+        /* end */
+
         /** Filters the set of items who are directly or indirectly (via another container) on the
          * specified screen. */
         private void filterCurrentWorkspaceItems(long currentScreenId,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值