Use Drawer in Settings app
- get rid of PreferenceActivity as much as we can and use fragments instead - add Drawer widget - add Dashboard high level entry into the Drawer (but this is work in progress and would be done in another CL) - add bypass of fragment's Header validation when launched from the Drawer but *force* validation if external call thru an Intent Be aware that WifiPickerActivity should remain for now a PreferenceActivity. It is used by SetupWizard and should not trigger running the SettingsActivity's header building code. SetupWizard is a Home during the provisionnig process and then deactivate itself as a Home but would make the Home header to appear in the Drawer (because momentarily we would have two Home). Also, verified that: - the WiFi settings still work when called from SetupWizard - when you have multiple Launchers, the Home header will appear in the list of Headers in the Drawer Change-Id: I407a5e0fdd843ad7615d3d511c416a44e3d97c90
This commit is contained in:
@@ -18,6 +18,7 @@ package com.android.settings.inputmethod;
|
||||
|
||||
import com.android.internal.inputmethod.InputMethodUtils;
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.SettingsActivity;
|
||||
import com.android.settings.SettingsPreferenceFragment;
|
||||
import com.android.settings.Utils;
|
||||
|
||||
@@ -31,8 +32,6 @@ import android.content.res.Configuration;
|
||||
import android.os.Bundle;
|
||||
import android.preference.CheckBoxPreference;
|
||||
import android.preference.Preference;
|
||||
import android.preference.PreferenceActivity;
|
||||
import android.provider.Settings;
|
||||
import android.text.TextUtils;
|
||||
import android.util.Log;
|
||||
import android.view.View;
|
||||
@@ -115,7 +114,7 @@ public class InputMethodPreference extends CheckBoxPreference {
|
||||
@Override
|
||||
public boolean onLongClick(View arg0) {
|
||||
final Bundle bundle = new Bundle();
|
||||
bundle.putString(Settings.EXTRA_INPUT_METHOD_ID, imiId);
|
||||
bundle.putString(android.provider.Settings.EXTRA_INPUT_METHOD_ID, imiId);
|
||||
startFragment(mFragment, InputMethodAndSubtypeEnabler.class.getName(),
|
||||
0, bundle);
|
||||
return true;
|
||||
@@ -147,7 +146,7 @@ public class InputMethodPreference extends CheckBoxPreference {
|
||||
@Override
|
||||
public boolean onLongClick(View arg0) {
|
||||
final Bundle bundle = new Bundle();
|
||||
bundle.putString(Settings.EXTRA_INPUT_METHOD_ID, imiId);
|
||||
bundle.putString(android.provider.Settings.EXTRA_INPUT_METHOD_ID, imiId);
|
||||
startFragment(mFragment, InputMethodAndSubtypeEnabler.class.getName(),
|
||||
0, bundle);
|
||||
return true;
|
||||
@@ -206,13 +205,12 @@ public class InputMethodPreference extends CheckBoxPreference {
|
||||
|
||||
public static boolean startFragment(
|
||||
Fragment fragment, String fragmentClass, int requestCode, Bundle extras) {
|
||||
if (fragment.getActivity() instanceof PreferenceActivity) {
|
||||
PreferenceActivity preferenceActivity = (PreferenceActivity)fragment.getActivity();
|
||||
preferenceActivity.startPreferencePanel(fragmentClass, extras, 0, null, fragment,
|
||||
requestCode);
|
||||
if (fragment.getActivity() instanceof SettingsActivity) {
|
||||
SettingsActivity sa = (SettingsActivity) fragment.getActivity();
|
||||
sa.startPreferencePanel(fragmentClass, extras, 0, null, fragment, requestCode);
|
||||
return true;
|
||||
} else {
|
||||
Log.w(TAG, "Parent isn't PreferenceActivity, thus there's no way to launch the "
|
||||
Log.w(TAG, "Parent isn't Settings, thus there's no way to launch the "
|
||||
+ "given Fragment (name: " + fragmentClass + ", requestCode: " + requestCode
|
||||
+ ")");
|
||||
return false;
|
||||
|
Reference in New Issue
Block a user