Fix crash language & input settings

Bug: 24576551
Change-Id: Ifb717689c862193cf06c23de52b3fb68f910db3c
This commit is contained in:
Jason Monk
2015-10-13 16:45:28 -04:00
parent 39b467482d
commit 783718fffe
4 changed files with 119 additions and 4 deletions

View File

@@ -23,6 +23,7 @@ import android.os.Bundle;
import android.support.v14.preference.PreferenceDialogFragment;
import android.support.v7.preference.DialogPreference;
import android.util.AttributeSet;
import android.view.View;
public class CustomDialogPreference extends DialogPreference {
@@ -62,6 +63,9 @@ public class CustomDialogPreference extends DialogPreference {
protected void onClick(DialogInterface dialog, int which) {
}
protected void onBindDialogView(View view) {
}
private void setFragment(CustomPreferenceDialogFragment fragment) {
mFragment = fragment;
}
@@ -92,6 +96,12 @@ public class CustomDialogPreference extends DialogPreference {
getCustomizablePreference().onDialogClosed(positiveResult);
}
@Override
protected void onBindDialogView(View view) {
super.onBindDialogView(view);
getCustomizablePreference().onBindDialogView(view);
}
@Override
public void onClick(DialogInterface dialog, int which) {
super.onClick(dialog, which);

View File

@@ -20,11 +20,9 @@ import android.content.ContentResolver;
import android.content.Context;
import android.database.ContentObserver;
import android.hardware.input.InputManager;
import android.os.Bundle;
import android.os.Handler;
import android.os.Parcel;
import android.os.Parcelable;
import android.preference.SeekBarDialogPreference;
import android.provider.Settings;
import android.util.AttributeSet;
import android.view.View;
@@ -53,8 +51,8 @@ public class PointerSpeedPreference extends SeekBarDialogPreference implements
}
@Override
protected void showDialog(Bundle state) {
super.showDialog(state);
protected void onClick() {
super.onClick();
getContext().getContentResolver().registerContentObserver(
Settings.System.getUriFor(Settings.System.POINTER_SPEED), true,

View File

@@ -0,0 +1,70 @@
/*
* Copyright (C) 2007 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;
import android.content.Context;
import android.graphics.drawable.Drawable;
import android.util.AttributeSet;
import android.view.View;
import android.widget.ImageView;
import android.widget.SeekBar;
/**
* Based on frameworks/base/core/java/android/preference/SeekBarDialogPreference.java
* except uses support lib preferences.
*/
public class SeekBarDialogPreference extends CustomDialogPreference {
private final Drawable mMyIcon;
public SeekBarDialogPreference(Context context, AttributeSet attrs) {
super(context, attrs);
setDialogLayoutResource(R.layout.preference_dialog_seekbar_material);
createActionButtons();
// Steal the XML dialogIcon attribute's value
mMyIcon = getDialogIcon();
setDialogIcon(null);
}
public SeekBarDialogPreference(Context context) {
this(context, null);
}
// Allow subclasses to override the action buttons
public void createActionButtons() {
setPositiveButtonText(android.R.string.ok);
setNegativeButtonText(android.R.string.cancel);
}
@Override
protected void onBindDialogView(View view) {
super.onBindDialogView(view);
final ImageView iconView = (ImageView) view.findViewById(android.R.id.icon);
if (mMyIcon != null) {
iconView.setImageDrawable(mMyIcon);
} else {
iconView.setVisibility(View.GONE);
}
}
protected static SeekBar getSeekBar(View dialogView) {
return (SeekBar) dialogView.findViewById(R.id.seekbar);
}
}