Remove dead code KeyboardLayoutPickerFragment.

Bug: 32642706
Test: compiles
Change-Id: I02b7abed470a813bff13fe9d71fcf870a47de6b3
This commit is contained in:
Fan Zhang
2016-11-04 14:12:15 -07:00
parent d732cc9db8
commit aceee52a8b
5 changed files with 50 additions and 212 deletions

View File

@@ -637,7 +637,7 @@
<category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.DEFAULT" />
</intent-filter> </intent-filter>
<meta-data android:name="com.android.settings.FRAGMENT_CLASS" <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
android:value="com.android.settings.inputmethod.KeyboardLayoutPickerFragment2" /> android:value="com.android.settings.inputmethod.KeyboardLayoutPickerFragment" />
</activity> </activity>
<activity android:name="Settings$PhysicalKeyboardActivity" <activity android:name="Settings$PhysicalKeyboardActivity"

View File

@@ -101,7 +101,6 @@ import com.android.settings.gestures.GestureSettings;
import com.android.settings.inputmethod.AvailableVirtualKeyboardFragment; import com.android.settings.inputmethod.AvailableVirtualKeyboardFragment;
import com.android.settings.inputmethod.InputMethodAndLanguageSettings; import com.android.settings.inputmethod.InputMethodAndLanguageSettings;
import com.android.settings.inputmethod.KeyboardLayoutPickerFragment; import com.android.settings.inputmethod.KeyboardLayoutPickerFragment;
import com.android.settings.inputmethod.KeyboardLayoutPickerFragment2;
import com.android.settings.inputmethod.PhysicalKeyboardFragment; import com.android.settings.inputmethod.PhysicalKeyboardFragment;
import com.android.settings.inputmethod.SpellCheckersSettings; import com.android.settings.inputmethod.SpellCheckersSettings;
import com.android.settings.inputmethod.UserDictionaryList; import com.android.settings.inputmethod.UserDictionaryList;
@@ -355,7 +354,6 @@ public class SettingsActivity extends SettingsDrawerActivity
TrustedCredentialsSettings.class.getName(), TrustedCredentialsSettings.class.getName(),
PaymentSettings.class.getName(), PaymentSettings.class.getName(),
KeyboardLayoutPickerFragment.class.getName(), KeyboardLayoutPickerFragment.class.getName(),
KeyboardLayoutPickerFragment2.class.getName(),
PhysicalKeyboardFragment.class.getName(), PhysicalKeyboardFragment.class.getName(),
ZenModeSettings.class.getName(), ZenModeSettings.class.getName(),
SoundSettings.class.getName(), SoundSettings.class.getName(),

View File

@@ -1,5 +1,5 @@
/* /*
* Copyright (C) 2012 The Android Open Source Project * Copyright (C) 2016 The Android Open Source Project
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@@ -16,32 +16,43 @@
package com.android.settings.inputmethod; package com.android.settings.inputmethod;
import android.content.Context; import android.annotation.Nullable;
import android.app.Activity;
import android.hardware.input.InputDeviceIdentifier; import android.hardware.input.InputDeviceIdentifier;
import android.hardware.input.InputManager; import android.hardware.input.InputManager;
import android.hardware.input.InputManager.InputDeviceListener; import android.hardware.input.InputManager.InputDeviceListener;
import android.hardware.input.KeyboardLayout; import android.hardware.input.KeyboardLayout;
import android.os.Bundle; import android.os.Bundle;
import android.support.v7.preference.CheckBoxPreference;
import android.support.v7.preference.Preference; import android.support.v7.preference.Preference;
import android.support.v7.preference.PreferenceScreen; import android.support.v7.preference.PreferenceScreen;
import android.view.InputDevice; import android.view.InputDevice;
import android.view.inputmethod.InputMethodInfo;
import android.view.inputmethod.InputMethodSubtype;
import com.android.internal.logging.MetricsLogger;
import com.android.internal.logging.MetricsProto.MetricsEvent; import com.android.internal.logging.MetricsProto.MetricsEvent;
import com.android.internal.util.Preconditions;
import com.android.settings.R;
import com.android.settings.SettingsPreferenceFragment; import com.android.settings.SettingsPreferenceFragment;
import com.android.settings.inputmethod.PhysicalKeyboardFragment.KeyboardInfoPreference;
import java.util.Arrays; import java.util.Arrays;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
public class KeyboardLayoutPickerFragment extends SettingsPreferenceFragment public final class KeyboardLayoutPickerFragment extends SettingsPreferenceFragment
implements InputDeviceListener { implements InputDeviceListener {
private InputDeviceIdentifier mInputDeviceIdentifier; private InputDeviceIdentifier mInputDeviceIdentifier;
private int mInputDeviceId = -1; private int mInputDeviceId = -1;
private InputManager mIm; private InputManager mIm;
private InputMethodInfo mImi;
@Nullable
private InputMethodSubtype mSubtype;
private KeyboardLayout[] mKeyboardLayouts; private KeyboardLayout[] mKeyboardLayouts;
private HashMap<CheckBoxPreference, KeyboardLayout> mPreferenceMap = private Map<Preference, KeyboardLayout> mPreferenceMap = new HashMap<>();
new HashMap<CheckBoxPreference, KeyboardLayout>();
// TODO: Make these constants public API for b/25752827
/** /**
* Intent extra: The input device descriptor of the keyboard whose keyboard * Intent extra: The input device descriptor of the keyboard whose keyboard
@@ -49,6 +60,16 @@ public class KeyboardLayoutPickerFragment extends SettingsPreferenceFragment
*/ */
public static final String EXTRA_INPUT_DEVICE_IDENTIFIER = "input_device_identifier"; public static final String EXTRA_INPUT_DEVICE_IDENTIFIER = "input_device_identifier";
/**
* Intent extra: The associated {@link InputMethodInfo}.
*/
public static final String EXTRA_INPUT_METHOD_INFO = "input_method_info";
/**
* Intent extra: The associated {@link InputMethodSubtype}.
*/
public static final String EXTRA_INPUT_METHOD_SUBTYPE = "input_method_subtype";
@Override @Override
public int getMetricsCategory() { public int getMetricsCategory() {
return MetricsEvent.INPUTMETHOD_KEYBOARD; return MetricsEvent.INPUTMETHOD_KEYBOARD;
@@ -57,14 +78,18 @@ public class KeyboardLayoutPickerFragment extends SettingsPreferenceFragment
@Override @Override
public void onCreate(Bundle icicle) { public void onCreate(Bundle icicle) {
super.onCreate(icicle); super.onCreate(icicle);
Activity activity = Preconditions.checkNotNull(getActivity());
mInputDeviceIdentifier = getActivity().getIntent().getParcelableExtra( mInputDeviceIdentifier = activity.getIntent().getParcelableExtra(
EXTRA_INPUT_DEVICE_IDENTIFIER); EXTRA_INPUT_DEVICE_IDENTIFIER);
if (mInputDeviceIdentifier == null) { mImi = activity.getIntent().getParcelableExtra(EXTRA_INPUT_METHOD_INFO);
getActivity().finish(); mSubtype = activity.getIntent().getParcelableExtra(EXTRA_INPUT_METHOD_SUBTYPE);
if (mInputDeviceIdentifier == null || mImi == null) {
activity.finish();
} }
mIm = (InputManager)getSystemService(Context.INPUT_SERVICE); mIm = activity.getSystemService(InputManager.class);
mKeyboardLayouts = mIm.getKeyboardLayoutsForInputDevice(mInputDeviceIdentifier); mKeyboardLayouts = mIm.getKeyboardLayoutsForInputDevice(mInputDeviceIdentifier);
Arrays.sort(mKeyboardLayouts); Arrays.sort(mKeyboardLayouts);
setPreferenceScreen(createPreferenceHierarchy()); setPreferenceScreen(createPreferenceHierarchy());
@@ -83,8 +108,6 @@ public class KeyboardLayoutPickerFragment extends SettingsPreferenceFragment
return; return;
} }
mInputDeviceId = inputDevice.getId(); mInputDeviceId = inputDevice.getId();
updateCheckedState();
} }
@Override @Override
@@ -97,34 +120,21 @@ public class KeyboardLayoutPickerFragment extends SettingsPreferenceFragment
@Override @Override
public boolean onPreferenceTreeClick(Preference preference) { public boolean onPreferenceTreeClick(Preference preference) {
if (preference instanceof CheckBoxPreference) { KeyboardLayout layout = mPreferenceMap.get(preference);
CheckBoxPreference checkboxPref = (CheckBoxPreference)preference; if (layout != null) {
KeyboardLayout layout = mPreferenceMap.get(checkboxPref); mIm.setKeyboardLayoutForInputDevice(mInputDeviceIdentifier, mImi, mSubtype,
if (layout != null) { layout.getDescriptor());
boolean checked = checkboxPref.isChecked(); getActivity().finish();
if (checked) { return true;
mIm.addKeyboardLayoutForInputDevice(mInputDeviceIdentifier,
layout.getDescriptor());
} else {
mIm.removeKeyboardLayoutForInputDevice(mInputDeviceIdentifier,
layout.getDescriptor());
}
return true;
}
} }
return super.onPreferenceTreeClick(preference); return super.onPreferenceTreeClick(preference);
} }
@Override @Override
public void onInputDeviceAdded(int deviceId) { public void onInputDeviceAdded(int deviceId) {}
}
@Override @Override
public void onInputDeviceChanged(int deviceId) { public void onInputDeviceChanged(int deviceId) {}
if (mInputDeviceId >= 0 && deviceId == mInputDeviceId) {
updateCheckedState();
}
}
@Override @Override
public void onInputDeviceRemoved(int deviceId) { public void onInputDeviceRemoved(int deviceId) {
@@ -135,26 +145,16 @@ public class KeyboardLayoutPickerFragment extends SettingsPreferenceFragment
private PreferenceScreen createPreferenceHierarchy() { private PreferenceScreen createPreferenceHierarchy() {
PreferenceScreen root = getPreferenceManager().createPreferenceScreen(getActivity()); PreferenceScreen root = getPreferenceManager().createPreferenceScreen(getActivity());
Context context = getActivity();
for (KeyboardLayout layout : mKeyboardLayouts) { for (KeyboardLayout layout : mKeyboardLayouts) {
CheckBoxPreference pref = new CheckBoxPreference(getPrefContext()); Preference pref = new Preference(getPrefContext());
pref.setTitle(layout.getLabel()); pref.setTitle(layout.getLabel());
pref.setSummary(layout.getCollection()); pref.setSummary(layout.getCollection());
root.addPreference(pref); root.addPreference(pref);
mPreferenceMap.put(pref, layout); mPreferenceMap.put(pref, layout);
} }
root.setTitle(KeyboardInfoPreference.getDisplayName(getContext(), mImi, mSubtype));
return root; return root;
} }
private void updateCheckedState() {
String[] enabledKeyboardLayouts = mIm.getEnabledKeyboardLayoutsForInputDevice(
mInputDeviceIdentifier);
Arrays.sort(enabledKeyboardLayouts);
for (Map.Entry<CheckBoxPreference, KeyboardLayout> entry : mPreferenceMap.entrySet()) {
entry.getKey().setChecked(Arrays.binarySearch(enabledKeyboardLayouts,
entry.getValue().getDescriptor()) >= 0);
}
}
} }

View File

@@ -1,160 +0,0 @@
/*
* Copyright (C) 2016 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.android.settings.inputmethod;
import android.annotation.Nullable;
import android.app.Activity;
import android.hardware.input.InputDeviceIdentifier;
import android.hardware.input.InputManager;
import android.hardware.input.InputManager.InputDeviceListener;
import android.hardware.input.KeyboardLayout;
import android.os.Bundle;
import android.support.v7.preference.Preference;
import android.support.v7.preference.PreferenceScreen;
import android.view.InputDevice;
import android.view.inputmethod.InputMethodInfo;
import android.view.inputmethod.InputMethodSubtype;
import com.android.internal.logging.MetricsLogger;
import com.android.internal.logging.MetricsProto.MetricsEvent;
import com.android.internal.util.Preconditions;
import com.android.settings.R;
import com.android.settings.SettingsPreferenceFragment;
import com.android.settings.inputmethod.PhysicalKeyboardFragment.KeyboardInfoPreference;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
public final class KeyboardLayoutPickerFragment2 extends SettingsPreferenceFragment
implements InputDeviceListener {
private InputDeviceIdentifier mInputDeviceIdentifier;
private int mInputDeviceId = -1;
private InputManager mIm;
private InputMethodInfo mImi;
@Nullable
private InputMethodSubtype mSubtype;
private KeyboardLayout[] mKeyboardLayouts;
private Map<Preference, KeyboardLayout> mPreferenceMap = new HashMap<>();
// TODO: Make these constants public API for b/25752827
/**
* Intent extra: The input device descriptor of the keyboard whose keyboard
* layout is to be changed.
*/
public static final String EXTRA_INPUT_DEVICE_IDENTIFIER = "input_device_identifier";
/**
* Intent extra: The associated {@link InputMethodInfo}.
*/
public static final String EXTRA_INPUT_METHOD_INFO = "input_method_info";
/**
* Intent extra: The associated {@link InputMethodSubtype}.
*/
public static final String EXTRA_INPUT_METHOD_SUBTYPE = "input_method_subtype";
@Override
public int getMetricsCategory() {
return MetricsEvent.INPUTMETHOD_KEYBOARD;
}
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
Activity activity = Preconditions.checkNotNull(getActivity());
mInputDeviceIdentifier = activity.getIntent().getParcelableExtra(
EXTRA_INPUT_DEVICE_IDENTIFIER);
mImi = activity.getIntent().getParcelableExtra(EXTRA_INPUT_METHOD_INFO);
mSubtype = activity.getIntent().getParcelableExtra(EXTRA_INPUT_METHOD_SUBTYPE);
if (mInputDeviceIdentifier == null || mImi == null) {
activity.finish();
}
mIm = activity.getSystemService(InputManager.class);
mKeyboardLayouts = mIm.getKeyboardLayoutsForInputDevice(mInputDeviceIdentifier);
Arrays.sort(mKeyboardLayouts);
setPreferenceScreen(createPreferenceHierarchy());
}
@Override
public void onResume() {
super.onResume();
mIm.registerInputDeviceListener(this, null);
InputDevice inputDevice =
mIm.getInputDeviceByDescriptor(mInputDeviceIdentifier.getDescriptor());
if (inputDevice == null) {
getActivity().finish();
return;
}
mInputDeviceId = inputDevice.getId();
}
@Override
public void onPause() {
mIm.unregisterInputDeviceListener(this);
mInputDeviceId = -1;
super.onPause();
}
@Override
public boolean onPreferenceTreeClick(Preference preference) {
KeyboardLayout layout = mPreferenceMap.get(preference);
if (layout != null) {
mIm.setKeyboardLayoutForInputDevice(mInputDeviceIdentifier, mImi, mSubtype,
layout.getDescriptor());
getActivity().finish();
return true;
}
return super.onPreferenceTreeClick(preference);
}
@Override
public void onInputDeviceAdded(int deviceId) {}
@Override
public void onInputDeviceChanged(int deviceId) {}
@Override
public void onInputDeviceRemoved(int deviceId) {
if (mInputDeviceId >= 0 && deviceId == mInputDeviceId) {
getActivity().finish();
}
}
private PreferenceScreen createPreferenceHierarchy() {
PreferenceScreen root = getPreferenceManager().createPreferenceScreen(getActivity());
for (KeyboardLayout layout : mKeyboardLayouts) {
Preference pref = new Preference(getPrefContext());
pref.setTitle(layout.getLabel());
pref.setSummary(layout.getCollection());
root.addPreference(pref);
mPreferenceMap.put(pref, layout);
}
root.setTitle(KeyboardInfoPreference.getDisplayName(getContext(), mImi, mSubtype));
return root;
}
}

View File

@@ -225,10 +225,10 @@ public final class PhysicalKeyboardFragment extends SettingsPreferenceFragment
@Nullable InputMethodSubtype imSubtype) { @Nullable InputMethodSubtype imSubtype) {
final Intent intent = new Intent(Intent.ACTION_MAIN); final Intent intent = new Intent(Intent.ACTION_MAIN);
intent.setClass(getActivity(), Settings.KeyboardLayoutPickerActivity.class); intent.setClass(getActivity(), Settings.KeyboardLayoutPickerActivity.class);
intent.putExtra(KeyboardLayoutPickerFragment2.EXTRA_INPUT_DEVICE_IDENTIFIER, intent.putExtra(KeyboardLayoutPickerFragment.EXTRA_INPUT_DEVICE_IDENTIFIER,
inputDeviceIdentifier); inputDeviceIdentifier);
intent.putExtra(KeyboardLayoutPickerFragment2.EXTRA_INPUT_METHOD_INFO, imi); intent.putExtra(KeyboardLayoutPickerFragment.EXTRA_INPUT_METHOD_INFO, imi);
intent.putExtra(KeyboardLayoutPickerFragment2.EXTRA_INPUT_METHOD_SUBTYPE, imSubtype); intent.putExtra(KeyboardLayoutPickerFragment.EXTRA_INPUT_METHOD_SUBTYPE, imSubtype);
startActivity(intent); startActivity(intent);
} }