Fix crash language & input settings
Bug: 24576551 Change-Id: Ifb717689c862193cf06c23de52b3fb68f910db3c
This commit is contained in:
		
							
								
								
									
										37
									
								
								res/layout/preference_dialog_seekbar_material.xml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										37
									
								
								res/layout/preference_dialog_seekbar_material.xml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,37 @@
 | 
			
		||||
<?xml version="1.0" encoding="utf-8"?>
 | 
			
		||||
<!-- Copyright (C) 2015 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.
 | 
			
		||||
-->
 | 
			
		||||
 | 
			
		||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 | 
			
		||||
              android:layout_width="match_parent"
 | 
			
		||||
              android:layout_height="match_parent"
 | 
			
		||||
              android:gravity="center_horizontal"
 | 
			
		||||
              android:orientation="vertical">
 | 
			
		||||
 | 
			
		||||
    <ImageView
 | 
			
		||||
        android:id="@android:id/icon"
 | 
			
		||||
        android:layout_width="wrap_content"
 | 
			
		||||
        android:layout_height="wrap_content"
 | 
			
		||||
        android:paddingTop="?android:attr/dialogPreferredPadding" />
 | 
			
		||||
 | 
			
		||||
    <SeekBar
 | 
			
		||||
        android:id="@+id/seekbar"
 | 
			
		||||
        android:layout_width="match_parent"
 | 
			
		||||
        android:layout_height="wrap_content"
 | 
			
		||||
        android:paddingTop="?android:attr/dialogPreferredPadding"
 | 
			
		||||
        android:paddingStart="?android:attr/dialogPreferredPadding"
 | 
			
		||||
        android:paddingEnd="?android:attr/dialogPreferredPadding" />
 | 
			
		||||
 | 
			
		||||
</LinearLayout>
 | 
			
		||||
@@ -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);
 | 
			
		||||
 
 | 
			
		||||
@@ -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,
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										70
									
								
								src/com/android/settings/SeekBarDialogPreference.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										70
									
								
								src/com/android/settings/SeekBarDialogPreference.java
									
									
									
									
									
										Normal 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);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user