Skip to content

Commit 2a4057d

Browse files
author
Winson Chung
committed
Updating IME tile with proper subtype name.
Change-Id: Ie7fed20873f51e3b2b4def14532df00d71762418
1 parent 5efc533 commit 2a4057d

File tree

3 files changed

+35
-1
lines changed

3 files changed

+35
-1
lines changed

packages/SystemUI/res/values/strings.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -410,7 +410,7 @@
410410
<!-- QuickSettings: Brightness [CHAR LIMIT=NONE] -->
411411
<string name="quick_settings_brightness_label">Brightness</string>
412412
<!-- QuickSettings: IME [CHAR LIMIT=NONE] -->
413-
<string name="quick_settings_ime_label">IME</string>
413+
<string name="quick_settings_ime_label">Input Method</string>
414414
<!-- QuickSettings: Location [CHAR LIMIT=NONE] -->
415415
<string name="quick_settings_location_label">Location in use</string>
416416
<!-- QuickSettings: Media device [CHAR LIMIT=NONE] -->

packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettings.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -411,6 +411,10 @@ public void onClick(View v) {
411411
mModel.addImeTile(imeTile, new QuickSettingsModel.RefreshCallback() {
412412
@Override
413413
public void refreshView(QuickSettingsTileView view, State state) {
414+
TextView tv = (TextView) view.findViewById(R.id.ime_textview);
415+
if (state.label != null) {
416+
tv.setText(state.label);
417+
}
414418
view.setVisibility(state.enabled ? View.VISIBLE : View.GONE);
415419
}
416420
});

packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettingsModel.java

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,13 +29,19 @@
2929
import android.hardware.display.WifiDisplayStatus;
3030
import android.os.Handler;
3131
import android.provider.Settings;
32+
import android.text.TextUtils;
3233
import android.view.View;
34+
import android.view.inputmethod.InputMethodInfo;
35+
import android.view.inputmethod.InputMethodManager;
36+
import android.view.inputmethod.InputMethodSubtype;
3337

3438
import com.android.systemui.R;
3539
import com.android.systemui.statusbar.policy.BatteryController.BatteryStateChangeCallback;
3640
import com.android.systemui.statusbar.policy.LocationController.LocationGpsStateChangeCallback;
3741
import com.android.systemui.statusbar.policy.NetworkController.NetworkSignalChangedCallback;
3842

43+
import java.util.List;
44+
3945

4046
class QuickSettingsModel implements BluetoothStateChangeCallback,
4147
NetworkSignalChangedCallback,
@@ -338,8 +344,32 @@ void addImeTile(QuickSettingsTileView view, RefreshCallback cb) {
338344
mImeCallback.refreshView(mImeTile, mImeState);
339345
}
340346
void onImeWindowStatusChanged(boolean visible) {
347+
InputMethodManager imm =
348+
(InputMethodManager) mContext.getSystemService(Context.INPUT_METHOD_SERVICE);
349+
List<InputMethodInfo> imis = imm.getInputMethodList();
350+
341351
mImeState.enabled = visible;
352+
mImeState.label = getCurrentInputMethodName(mContext, mContext.getContentResolver(),
353+
imm, imis, mContext.getPackageManager());
342354
mImeCallback.refreshView(mImeTile, mImeState);
343355
}
356+
private static String getCurrentInputMethodName(Context context, ContentResolver resolver,
357+
InputMethodManager imm, List<InputMethodInfo> imis, PackageManager pm) {
358+
if (resolver == null || imis == null) return null;
359+
final String currentInputMethodId = Settings.Secure.getString(resolver,
360+
Settings.Secure.DEFAULT_INPUT_METHOD);
361+
if (TextUtils.isEmpty(currentInputMethodId)) return null;
362+
for (InputMethodInfo imi : imis) {
363+
if (currentInputMethodId.equals(imi.getId())) {
364+
final InputMethodSubtype subtype = imm.getCurrentInputMethodSubtype();
365+
final CharSequence summary = subtype != null
366+
? subtype.getDisplayName(context, imi.getPackageName(),
367+
imi.getServiceInfo().applicationInfo)
368+
: context.getString(R.string.quick_settings_ime_label);
369+
return summary.toString();
370+
}
371+
}
372+
return null;
373+
}
344374

345375
}

0 commit comments

Comments
 (0)