Settings: Update media & alarm stream icons.

Update icon pointers and remove obsolete preference class.

Bug: 17762712
Change-Id: Ia4b96c5b38f2a73a7a339b2ab3abfcd433f4403d
diff --git a/res/drawable/ic_audio_alarm_24dp.xml b/res/drawable/ic_audio_alarm_24dp.xml
new file mode 100644
index 0000000..ddfaa01
--- /dev/null
+++ b/res/drawable/ic_audio_alarm_24dp.xml
@@ -0,0 +1,20 @@
+<!--
+Copyright (C) 2014 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.
+-->
+<!-- shrink ic_audio_alarm from 32dp to 24dp using insets -->
+<inset xmlns:android="http://schemas.android.com/apk/res/android"
+        android:drawable="@*android:drawable/ic_audio_alarm"
+        android:inset="4dp"
+        />
diff --git a/res/drawable/ic_audio_vol_24dp.xml b/res/drawable/ic_audio_vol_24dp.xml
new file mode 100644
index 0000000..ecb3a40
--- /dev/null
+++ b/res/drawable/ic_audio_vol_24dp.xml
@@ -0,0 +1,20 @@
+<!--
+Copyright (C) 2014 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.
+-->
+<!-- shrink ic_audio_vol from 32dp to 24dp using insets -->
+<inset xmlns:android="http://schemas.android.com/apk/res/android"
+        android:drawable="@*android:drawable/ic_audio_vol"
+        android:inset="4dp"
+        />
diff --git a/res/drawable/ring_notif.xml b/res/drawable/ring_notif.xml
index 414a83d..cc9da31 100644
--- a/res/drawable/ring_notif.xml
+++ b/res/drawable/ring_notif.xml
@@ -16,9 +16,6 @@
 <!-- shrink ic_audio_ring_notif from 32dp to 24dp using insets -->
 <inset xmlns:android="http://schemas.android.com/apk/res/android"
         android:drawable="@*android:drawable/ic_audio_ring_notif"
-        android:insetLeft="4dp"
-        android:insetRight="4dp"
-        android:insetTop="4dp"
-        android:insetBottom="4dp"
+        android:inset="4dp"
         />
 
diff --git a/res/drawable/ring_notif_mute.xml b/res/drawable/ring_notif_mute.xml
index afb835c..fe9417d 100644
--- a/res/drawable/ring_notif_mute.xml
+++ b/res/drawable/ring_notif_mute.xml
@@ -16,8 +16,5 @@
 <!-- shrink ic_audio_ring_notif_mute from 32dp to 24dp using insets -->
 <inset xmlns:android="http://schemas.android.com/apk/res/android"
         android:drawable="@*android:drawable/ic_audio_ring_notif_mute"
-        android:insetLeft="4dp"
-        android:insetRight="4dp"
-        android:insetTop="4dp"
-        android:insetBottom="4dp"
+        android:inset="4dp"
         />
diff --git a/res/drawable/ring_notif_vibrate.xml b/res/drawable/ring_notif_vibrate.xml
index 4f19e01..37113d7 100644
--- a/res/drawable/ring_notif_vibrate.xml
+++ b/res/drawable/ring_notif_vibrate.xml
@@ -16,8 +16,5 @@
 <!-- shrink ic_audio_ring_notif_vibrate from 32dp to 24dp using insets -->
 <inset xmlns:android="http://schemas.android.com/apk/res/android"
         android:drawable="@*android:drawable/ic_audio_ring_notif_vibrate"
-        android:insetLeft="4dp"
-        android:insetRight="4dp"
-        android:insetTop="4dp"
-        android:insetBottom="4dp"
+        android:inset="4dp"
         />
diff --git a/res/xml/notification_settings.xml b/res/xml/notification_settings.xml
index e9a4992..3f9b40c 100644
--- a/res/xml/notification_settings.xml
+++ b/res/xml/notification_settings.xml
@@ -27,13 +27,13 @@
         <!-- Media volume -->
         <com.android.settings.notification.VolumeSeekBarPreference
                 android:key="media_volume"
-                android:icon="@*android:drawable/ic_audio_vol"
+                android:icon="@drawable/ic_audio_vol_24dp"
                 android:title="@string/media_volume_option_title" />
 
         <!-- Alarm volume -->
         <com.android.settings.notification.VolumeSeekBarPreference
                 android:key="alarm_volume"
-                android:icon="@*android:drawable/ic_audio_alarm"
+                android:icon="@drawable/ic_audio_alarm_24dp"
                 android:title="@string/alarm_volume_option_title" />
 
         <!-- Ring volume -->
diff --git a/src/com/android/settings/RingerVolumePreference.java b/src/com/android/settings/RingerVolumePreference.java
deleted file mode 100644
index 313c1c0..0000000
--- a/src/com/android/settings/RingerVolumePreference.java
+++ /dev/null
@@ -1,391 +0,0 @@
-/*
- * Copyright (C) 2008 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 static android.os.BatteryManager.BATTERY_STATUS_UNKNOWN;
-
-import com.android.internal.telephony.TelephonyIntents;
-
-import android.app.Dialog;
-import android.content.BroadcastReceiver;
-import android.content.ContentResolver;
-import android.content.Context;
-import android.content.Intent;
-import android.content.IntentFilter;
-import android.media.AudioManager;
-import android.media.AudioSystem;
-import android.net.Uri;
-import android.os.Handler;
-import android.os.Looper;
-import android.os.Message;
-import android.os.Parcel;
-import android.os.Parcelable;
-import android.preference.SeekBarVolumizer;
-import android.preference.VolumePreference;
-import android.provider.Settings;
-import android.provider.Settings.System;
-import android.util.AttributeSet;
-import android.util.Log;
-import android.view.KeyEvent;
-import android.view.View;
-import android.view.View.OnClickListener;
-import android.widget.CheckBox;
-import android.widget.CompoundButton;
-import android.widget.ImageView;
-import android.widget.SeekBar;
-import android.widget.TextView;
-
-/**
- * Special preference type that allows configuration of both the ring volume and
- * notification volume.
- */
-public class RingerVolumePreference extends VolumePreference {
-    private static final String TAG = "RingerVolumePreference";
-    private static final int MSG_RINGER_MODE_CHANGED = 101;
-
-    private SeekBarVolumizer [] mSeekBarVolumizer;
-
-    // These arrays must all match in length and order
-    private static final int[] SEEKBAR_ID = new int[] {
-        R.id.media_volume_seekbar,
-        R.id.ringer_volume_seekbar,
-        R.id.notification_volume_seekbar,
-        R.id.alarm_volume_seekbar
-    };
-
-    private static final int[] SEEKBAR_TYPE = new int[] {
-        AudioManager.STREAM_MUSIC,
-        AudioManager.STREAM_RING,
-        AudioManager.STREAM_NOTIFICATION,
-        AudioManager.STREAM_ALARM
-    };
-
-    private static final int[] CHECKBOX_VIEW_ID = new int[] {
-        R.id.media_mute_button,
-        R.id.ringer_mute_button,
-        R.id.notification_mute_button,
-        R.id.alarm_mute_button
-    };
-
-    private static final int[] SEEKBAR_SECTION_ID = new int[] {
-        R.id.media_section,
-        R.id.ringer_section,
-        R.id.notification_section,
-        R.id.alarm_section
-    };
-
-    private static final int[] SEEKBAR_MUTED_RES_ID = new int[] {
-        com.android.internal.R.drawable.ic_audio_vol_mute,
-        com.android.internal.R.drawable.ic_audio_ring_notif_mute,
-        com.android.internal.R.drawable.ic_audio_notification_mute,
-        com.android.internal.R.drawable.ic_audio_alarm_mute
-    };
-
-    private static final int[] SEEKBAR_UNMUTED_RES_ID = new int[] {
-        com.android.internal.R.drawable.ic_audio_vol,
-        com.android.internal.R.drawable.ic_audio_ring_notif,
-        com.android.internal.R.drawable.ic_audio_notification,
-        com.android.internal.R.drawable.ic_audio_alarm
-    };
-
-    private ImageView[] mCheckBoxes = new ImageView[SEEKBAR_MUTED_RES_ID.length];
-    private SeekBar[] mSeekBars = new SeekBar[SEEKBAR_ID.length];
-
-    private Handler mHandler = new Handler() {
-        public void handleMessage(Message msg) {
-            updateSlidersAndMutedStates();
-        }
-    };
-
-    @Override
-    public void createActionButtons() {
-        setPositiveButtonText(android.R.string.ok);
-        setNegativeButtonText(null);
-    }
-
-    private void updateSlidersAndMutedStates() {
-        for (int i = 0; i < SEEKBAR_TYPE.length; i++) {
-            int streamType = SEEKBAR_TYPE[i];
-            boolean muted = mAudioManager.isStreamMute(streamType);
-
-            if (mCheckBoxes[i] != null) {
-                if (((streamType == AudioManager.STREAM_RING) ||
-                        (streamType == AudioManager.STREAM_NOTIFICATION)) &&
-                        (mAudioManager.getRingerMode() == AudioManager.RINGER_MODE_VIBRATE)) {
-                    mCheckBoxes[i].setImageResource(
-                            com.android.internal.R.drawable.ic_audio_ring_notif_vibrate);
-                } else {
-                    mCheckBoxes[i].setImageResource(
-                            muted ? SEEKBAR_MUTED_RES_ID[i] : SEEKBAR_UNMUTED_RES_ID[i]);
-                }
-            }
-            if (mSeekBars[i] != null) {
-                final int volume = mAudioManager.getStreamVolume(streamType);
-                mSeekBars[i].setProgress(volume);
-                if (streamType != mAudioManager.getMasterStreamType() && muted) {
-                    mSeekBars[i].setEnabled(false);
-                } else {
-                    mSeekBars[i].setEnabled(true);
-                }
-            }
-        }
-    }
-
-    private BroadcastReceiver mRingModeChangedReceiver;
-    private AudioManager mAudioManager;
-
-    //private SeekBarVolumizer mNotificationSeekBarVolumizer;
-    //private TextView mNotificationVolumeTitle;
-
-    public RingerVolumePreference(Context context, AttributeSet attrs) {
-        super(context, attrs);
-
-        // The always visible seekbar is for ring volume
-        setStreamType(AudioManager.STREAM_RING);
-
-        setDialogLayoutResource(R.layout.preference_dialog_ringervolume);
-        //setDialogIcon(R.drawable.ic_settings_sound);
-
-        mSeekBarVolumizer = new SeekBarVolumizer[SEEKBAR_ID.length];
-
-        mAudioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
-    }
-
-    @Override
-    protected void onBindDialogView(View view) {
-        super.onBindDialogView(view);
-
-        for (int i = 0; i < SEEKBAR_ID.length; i++) {
-            SeekBar seekBar = (SeekBar) view.findViewById(SEEKBAR_ID[i]);
-            mSeekBars[i] = seekBar;
-            if (SEEKBAR_TYPE[i] == AudioManager.STREAM_MUSIC) {
-                mSeekBarVolumizer[i] = new SeekBarVolumizer(getContext(),
-                        SEEKBAR_TYPE[i], getMediaVolumeUri(getContext()), this);
-                mSeekBarVolumizer[i].setSeekBar(seekBar);
-            } else {
-                mSeekBarVolumizer[i] = new SeekBarVolumizer(getContext(),
-                        SEEKBAR_TYPE[i], null, this);
-                mSeekBarVolumizer[i].setSeekBar(seekBar);
-            }
-        }
-
-        // Register callbacks for mute/unmute buttons
-        for (int i = 0; i < mCheckBoxes.length; i++) {
-            ImageView checkbox = (ImageView) view.findViewById(CHECKBOX_VIEW_ID[i]);
-            mCheckBoxes[i] = checkbox;
-        }
-
-        // Load initial states from AudioManager
-        updateSlidersAndMutedStates();
-
-        // Listen for updates from AudioManager
-        if (mRingModeChangedReceiver == null) {
-            final IntentFilter filter = new IntentFilter();
-            filter.addAction(AudioManager.RINGER_MODE_CHANGED_ACTION);
-            mRingModeChangedReceiver = new BroadcastReceiver() {
-                public void onReceive(Context context, Intent intent) {
-                    final String action = intent.getAction();
-                    if (AudioManager.RINGER_MODE_CHANGED_ACTION.equals(action)) {
-                        mHandler.sendMessage(mHandler.obtainMessage(MSG_RINGER_MODE_CHANGED, intent
-                                .getIntExtra(AudioManager.EXTRA_RINGER_MODE, -1), 0));
-                    }
-                }
-            };
-            getContext().registerReceiver(mRingModeChangedReceiver, filter);
-        }
-
-        boolean useMasterVolume = getContext().getResources().
-                getBoolean(com.android.internal.R.bool.config_useMasterVolume);
-        if (useMasterVolume) {
-            // If config_useMasterVolume is true, all streams are treated as STREAM_MASTER.
-            // So hide all except a stream.
-            int id;
-            if (Utils.isVoiceCapable(getContext())) {
-                id = R.id.ringer_section;
-            } else {
-                id = R.id.media_section;
-            }
-            for (int i = 0; i < SEEKBAR_SECTION_ID.length; i++) {
-                if (SEEKBAR_SECTION_ID[i] != id) {
-                    view.findViewById(SEEKBAR_SECTION_ID[i]).setVisibility(View.GONE);
-                }
-            }
-        } else {
-            // Disable either ringer+notifications or notifications
-            int id;
-            if (!Utils.isVoiceCapable(getContext())) {
-                id = R.id.ringer_section;
-            } else {
-                id = R.id.notification_section;
-            }
-            View hideSection = view.findViewById(id);
-            hideSection.setVisibility(View.GONE);
-        }
-    }
-
-    private Uri getMediaVolumeUri(Context context) {
-        return Uri.parse(ContentResolver.SCHEME_ANDROID_RESOURCE + "://"
-                + context.getPackageName()
-                + "/" + R.raw.media_volume);
-    }
-
-    @Override
-    protected void onDialogClosed(boolean positiveResult) {
-        super.onDialogClosed(positiveResult);
-
-        if (!positiveResult) {
-            for (SeekBarVolumizer vol : mSeekBarVolumizer) {
-                if (vol != null) vol.revertVolume();
-            }
-        }
-        cleanup();
-    }
-
-    @Override
-    public void onActivityStop() {
-        super.onActivityStop();
-
-        for (SeekBarVolumizer vol : mSeekBarVolumizer) {
-            if (vol != null) vol.stopSample();
-        }
-    }
-
-    @Override
-    public boolean onKey(View v, int keyCode, KeyEvent event) {
-        boolean isdown = (event.getAction() == KeyEvent.ACTION_DOWN);
-        switch (keyCode) {
-            case KeyEvent.KEYCODE_VOLUME_DOWN:
-            case KeyEvent.KEYCODE_VOLUME_UP:
-            case KeyEvent.KEYCODE_VOLUME_MUTE:
-                return true;
-            default:
-                return false;
-        }
-    }
-
-    @Override
-    public void onSampleStarting(SeekBarVolumizer volumizer) {
-        super.onSampleStarting(volumizer);
-        for (SeekBarVolumizer vol : mSeekBarVolumizer) {
-            if (vol != null && vol != volumizer) vol.stopSample();
-        }
-    }
-
-    private void cleanup() {
-        for (int i = 0; i < SEEKBAR_ID.length; i++) {
-            if (mSeekBarVolumizer[i] != null) {
-                Dialog dialog = getDialog();
-                if (dialog != null && dialog.isShowing()) {
-                    // Stopped while dialog was showing, revert changes
-                    mSeekBarVolumizer[i].revertVolume();
-                }
-                mSeekBarVolumizer[i].stop();
-                mSeekBarVolumizer[i] = null;
-            }
-        }
-        if (mRingModeChangedReceiver != null) {
-            getContext().unregisterReceiver(mRingModeChangedReceiver);
-            mRingModeChangedReceiver = null;
-        }
-    }
-
-    @Override
-    protected Parcelable onSaveInstanceState() {
-        final Parcelable superState = super.onSaveInstanceState();
-        if (isPersistent()) {
-            // No need to save instance state since it's persistent
-            return superState;
-        }
-
-        final SavedState myState = new SavedState(superState);
-        VolumeStore[] volumeStore = myState.getVolumeStore(SEEKBAR_ID.length);
-        for (int i = 0; i < SEEKBAR_ID.length; i++) {
-            SeekBarVolumizer vol = mSeekBarVolumizer[i];
-            if (vol != null) {
-                vol.onSaveInstanceState(volumeStore[i]);
-            }
-        }
-        return myState;
-    }
-
-    @Override
-    protected void onRestoreInstanceState(Parcelable state) {
-        if (state == null || !state.getClass().equals(SavedState.class)) {
-            // Didn't save state for us in onSaveInstanceState
-            super.onRestoreInstanceState(state);
-            return;
-        }
-
-        SavedState myState = (SavedState) state;
-        super.onRestoreInstanceState(myState.getSuperState());
-        VolumeStore[] volumeStore = myState.getVolumeStore(SEEKBAR_ID.length);
-        for (int i = 0; i < SEEKBAR_ID.length; i++) {
-            SeekBarVolumizer vol = mSeekBarVolumizer[i];
-            if (vol != null) {
-                vol.onRestoreInstanceState(volumeStore[i]);
-            }
-        }
-    }
-
-    private static class SavedState extends BaseSavedState {
-        VolumeStore [] mVolumeStore;
-
-        public SavedState(Parcel source) {
-            super(source);
-            mVolumeStore = new VolumeStore[SEEKBAR_ID.length];
-            for (int i = 0; i < SEEKBAR_ID.length; i++) {
-                mVolumeStore[i] = new VolumeStore();
-                mVolumeStore[i].volume = source.readInt();
-                mVolumeStore[i].originalVolume = source.readInt();
-            }
-        }
-
-        @Override
-        public void writeToParcel(Parcel dest, int flags) {
-            super.writeToParcel(dest, flags);
-            for (int i = 0; i < SEEKBAR_ID.length; i++) {
-                dest.writeInt(mVolumeStore[i].volume);
-                dest.writeInt(mVolumeStore[i].originalVolume);
-            }
-        }
-
-        VolumeStore[] getVolumeStore(int count) {
-            if (mVolumeStore == null || mVolumeStore.length != count) {
-                mVolumeStore = new VolumeStore[count];
-                for (int i = 0; i < count; i++) {
-                    mVolumeStore[i] = new VolumeStore();
-                }
-            }
-            return mVolumeStore;
-        }
-
-        public SavedState(Parcelable superState) {
-            super(superState);
-        }
-
-        public static final Parcelable.Creator<SavedState> CREATOR =
-                new Parcelable.Creator<SavedState>() {
-            public SavedState createFromParcel(Parcel in) {
-                return new SavedState(in);
-            }
-
-            public SavedState[] newArray(int size) {
-                return new SavedState[size];
-            }
-        };
-    }
-}