From 325722855f24fbc017a46d969adaf35c237fe805 Mon Sep 17 00:00:00 2001 From: Simon Shields Date: Fri, 18 Mar 2016 23:13:27 +1100 Subject: smdk4412-common: commonize AdvancedDisplay [3/3] Change-Id: Ie66ca09bccc5e651365c1fe0004ba81eaed823ba --- .../settings/device/SeekBarPreference.java | 226 --------------------- 1 file changed, 226 deletions(-) delete mode 100644 AdvancedDisplay/src/com/cyanogenmod/settings/device/SeekBarPreference.java (limited to 'AdvancedDisplay/src/com/cyanogenmod/settings/device/SeekBarPreference.java') diff --git a/AdvancedDisplay/src/com/cyanogenmod/settings/device/SeekBarPreference.java b/AdvancedDisplay/src/com/cyanogenmod/settings/device/SeekBarPreference.java deleted file mode 100644 index 9f614c8..0000000 --- a/AdvancedDisplay/src/com/cyanogenmod/settings/device/SeekBarPreference.java +++ /dev/null @@ -1,226 +0,0 @@ -/* - * Copyright (C) 2013 The ChameleonOS 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.cyanogenmod.settings.device; - -import android.content.Context; -import android.content.res.TypedArray; -import android.preference.Preference; -import android.util.AttributeSet; -import android.util.Log; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.view.ViewParent; -import android.widget.RelativeLayout; -import android.widget.SeekBar; -import android.widget.SeekBar.OnSeekBarChangeListener; -import android.widget.TextView; - -import com.cyanogenmod.settings.device.R; - -public class SeekBarPreference extends Preference implements OnSeekBarChangeListener { - - private final String TAG = getClass().getName(); - - private static final String ANDROIDNS = "http://schemas.android.com/apk/res/android"; - private static final String ADVANCEDDISPLAY = "http://schemas.android.com/apk/res/com.cyanogenmod.settings.device"; - private static final int DEFAULT_VALUE = 50; - - private int mMaxValue = 100; - private int mMinValue = 0; - private int mInterval = 1; - private int mCurrentValue; - private String mUnitsLeft = ""; - private String mUnitsRight = ""; - private SeekBar mSeekBar; - private TextView mTitle; - - private TextView mStatusText; - - public SeekBarPreference(Context context, AttributeSet attrs) { - super(context, attrs); - initPreference(context, attrs); - } - - public SeekBarPreference(Context context, AttributeSet attrs, int defStyle) { - super(context, attrs, defStyle); - initPreference(context, attrs); - } - - private void initPreference(Context context, AttributeSet attrs) { - setValuesFromXml(attrs); - mSeekBar = new SeekBar(context, attrs); - mSeekBar.setMax(mMaxValue - mMinValue); - mSeekBar.setOnSeekBarChangeListener(this); - } - - private void setValuesFromXml(AttributeSet attrs) { - mMaxValue = attrs.getAttributeIntValue(ANDROIDNS, "max", 100); - mMinValue = attrs.getAttributeIntValue(ADVANCEDDISPLAY, "min", 0); - mUnitsLeft = getAttributeStringValue(attrs, ADVANCEDDISPLAY, "unitsLeft", ""); - String units = getAttributeStringValue(attrs, ADVANCEDDISPLAY, "units", ""); - mUnitsRight = getAttributeStringValue(attrs, ADVANCEDDISPLAY, "unitsRight", units); - try { - String newInterval = attrs.getAttributeValue(ADVANCEDDISPLAY, "interval"); - if(newInterval != null) - mInterval = Integer.parseInt(newInterval); - } - catch(Exception e) { - Log.e(TAG, "Invalid interval value", e); - } - } - - private String getAttributeStringValue(AttributeSet attrs, String namespace, String name, String defaultValue) { - String value = attrs.getAttributeValue(namespace, name); - if(value == null) - value = defaultValue; - - return value; - } - - @Override - public void onDependencyChanged(Preference dependency, boolean disableDependent) { - super.onDependencyChanged(dependency, disableDependent); - this.setShouldDisableView(true); - if (mTitle != null) - mTitle.setEnabled(!disableDependent); - if (mSeekBar != null) - mSeekBar.setEnabled(!disableDependent); - } - - @Override - protected View onCreateView(ViewGroup parent){ - - RelativeLayout layout = null; - try { - LayoutInflater mInflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); - layout = (RelativeLayout)mInflater.inflate(R.layout.seek_bar_preference, parent, false); - mTitle = (TextView) layout.findViewById(android.R.id.title); - } - catch(Exception e) - { - Log.e(TAG, "Error creating seek bar preference", e); - } - return layout; - } - - @Override - public void onBindView(View view) { - super.onBindView(view); - try - { - // move our seekbar to the new view we've been given - ViewParent oldContainer = mSeekBar.getParent(); - ViewGroup newContainer = (ViewGroup) view.findViewById(R.id.seekBarPrefBarContainer); - - if (oldContainer != newContainer) { - // remove the seekbar from the old view - if (oldContainer != null) { - ((ViewGroup) oldContainer).removeView(mSeekBar); - } - // remove the existing seekbar (there may not be one) and add ours - newContainer.removeAllViews(); - newContainer.addView(mSeekBar, ViewGroup.LayoutParams.FILL_PARENT, - ViewGroup.LayoutParams.WRAP_CONTENT); - } - } - catch(Exception ex) { - Log.e(TAG, "Error binding view: " + ex.toString()); - } - updateView(view); - } - - /** - * Update a SeekBarPreference view with our current state - * @param view - */ - protected void updateView(View view) { - - try { - RelativeLayout layout = (RelativeLayout)view; - mStatusText = (TextView)layout.findViewById(R.id.seekBarPrefValue); - mStatusText.setText(String.valueOf(mCurrentValue)); - mStatusText.setMinimumWidth(30); - mSeekBar.setProgress(mCurrentValue - mMinValue); - - TextView unitsRight = (TextView)layout.findViewById(R.id.seekBarPrefUnitsRight); - unitsRight.setText(mUnitsRight); - TextView unitsLeft = (TextView)layout.findViewById(R.id.seekBarPrefUnitsLeft); - unitsLeft.setText(mUnitsLeft); - } - catch(Exception e) { - Log.e(TAG, "Error updating seek bar preference", e); - } - } - - @Override - public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { - int newValue = progress + mMinValue; - if(newValue > mMaxValue) - newValue = mMaxValue; - else if(newValue < mMinValue) - newValue = mMinValue; - else if(mInterval != 1 && newValue % mInterval != 0) - newValue = Math.round(((float)newValue)/mInterval)*mInterval; - - // change rejected, revert to the previous value - if(!callChangeListener(newValue)){ - seekBar.setProgress(mCurrentValue - mMinValue); - return; - } - // change accepted, store it - mCurrentValue = newValue; - mStatusText.setText(String.valueOf(newValue)); - persistInt(newValue); - } - - @Override - public void onStartTrackingTouch(SeekBar seekBar) {} - - @Override - public void onStopTrackingTouch(SeekBar seekBar) { - notifyChanged(); - } - - @Override - protected Object onGetDefaultValue(TypedArray ta, int index){ - int defaultValue = ta.getInt(index, DEFAULT_VALUE); - return defaultValue; - } - - @Override - protected void onSetInitialValue(boolean restoreValue, Object defaultValue) { - if(restoreValue) { - mCurrentValue = getPersistedInt(mCurrentValue); - } - else { - int temp = 0; - try { - temp = (Integer)defaultValue; - } - catch(Exception ex) { - Log.e(TAG, "Invalid default value: " + defaultValue.toString()); - } - persistInt(temp); - mCurrentValue = temp; - } - } - - public void setValue(int value) { - mCurrentValue = value; - } -} -- cgit v1.1