[AT&T, Rogers, Bell, Telus Samsung Galaxy S III] loserskater:
Tired of the volume panel sitting on the screen for what seems like way too long? You can now change the timeout so it hides much quicker.

We're going to be working with the following two files:

SecSettings.apk

framework.jar

KEY

ADD what's in RED

SecSettings.apk

Navigate to /res/values/arrays.xml

Add the following to the end of the file

<string-array name="volume_panel_timeout_entries">
<item>0.5s</item>
<item>1s</item>
<item>1.5s</item>
<item>2s</item>
<item>2.5s</item>
<item>3s (Default)</item>
</string-array>
<string-array name="volume_panel_timeout_values">
<item>500</item>
<item>1000</item>
<item>1500</item>
<item>2000</item>
<item>2500</item>
<item>3000</item>
</string-array>

Navigate to /res/values/strings.xml

Add the following to the end of the file

<string name="volume_panel_timeout_title">Volume Panel Timeout</string>
<string name="volume_panel_timeout_summary">%s</string>

Navigate to /xml/display_settings.xml

Add the following line wherever you would like it to show in the menu

<ListPreference android:persistent="false" android:entries="@array/volume_panel_timeout_entries" android:title="@string/volume_panel_timeout_title" android:key="volume_panel_timeout" android:summary="@string/volume_panel_timeout_summary" android:widgetLayout="@layout/round_more_icon" android:entryValues="@array/volume_panel_timeout_values" />

Navigate to /smali/com/android/settings/DisplaySettings.smali

.field mSupportFolderType:Z

.field private mTouchKeyLight:Landroid/preference/ListPreference;

[COLOR="Red"].field mVolumePanel:Landroid/preference/ListPreference;[/COLOR]

.method private updateState()V

iget-object v3, p0, Lcom/android/settings/DisplaySettings;->mDisplayBatteryLevel:Landroid/preference/CheckBoxPreference;

invoke-virtual {p0}, Lcom/android/settings/DisplaySettings;->getContentResolver()Landroid/content/ContentResolver;

move-result-object v0

const-string v4, "display_battery_percentage"

invoke-static {v0, v4, v2}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I

move-result v0

if-eqz v0, :cond_4

move v0, v1

:goto_1
invoke-virtual {v3, v0}, Landroid/preference/CheckBoxPreference;->setChecked(Z)V

[COLOR="red"]iget-object v0, p0, Lcom/android/settings/DisplaySettings;->mVolumePanel:Landroid/preference/ListPreference;

invoke-virtual {p0}, Lcom/android/settings/DisplaySettings;->getContentResolver()Landroid/content/ContentResolver;

move-result-object v3

const-string v4, "volume_panel_timeout"

const/16 v5, 0x5

invoke-static {v3, v4, v5}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I

move-result v3

invoke-static {v3}, Ljava/lang/String;->valueOf(I)Ljava/lang/String;

move-result-object v3

invoke-virtual {v0, v3}, Landroid/preference/ListPreference;->setValue(Ljava/lang/String;)V

iget-object v0, p0, Lcom/android/settings/DisplaySettings;->mVolumePanel:Landroid/preference/ListPreference;

iget-object v3, p0, Lcom/android/settings/DisplaySettings;->mVolumePanel:Landroid/preference/ListPreference;

invoke-virtual {v3}, Landroid/preference/ListPreference;->getEntry()Ljava/lang/CharSequence;

move-result-object v3

invoke-virtual {v0, v3}, Landroid/preference/ListPreference;->setSummary(Ljava/lang/CharSequence;)V[/COLOR]

iget-object v0, p0, Lcom/android/settings/DisplaySettings;->mTouchKeyLight:Landroid/preference/ListPreference;

invoke-virtual {p0}, Lcom/android/settings/DisplaySettings;->getContentResolver()Landroid/content/ContentResolver;

move-result-object v3

const-string v4, "button_key_light"

.method public onCreate(Landroid/os/Bundle;)V

const-string v11, "display_battery_level"

invoke-virtual {p0, v11}, Lcom/android/settings/DisplaySettings;->findPreference(Ljava/lang/CharSequence;)Landroid/preference/Preference;

move-result-object v11

check-cast v11, Landroid/preference/CheckBoxPreference;

iput-object v11, p0, Lcom/android/settings/DisplaySettings;->mDisplayBatteryLevel:Landroid/preference/CheckBoxPreference;

[COLOR="red"]const-string v11, "volume_panel_timeout"

invoke-virtual {p0, v11}, Lcom/android/settings/DisplaySettings;->findPreference(Ljava/lang/CharSequence;)Landroid/preference/Preference;

move-result-object v11

check-cast v11, Landroid/preference/ListPreference;

iput-object v11, p0, Lcom/android/settings/DisplaySettings;->mVolumePanel:Landroid/preference/ListPreference;

iget-object v11, p0, Lcom/android/settings/DisplaySettings;->mVolumePanel:Landroid/preference/ListPreference;

invoke-virtual {v11, p0}, Landroid/preference/ListPreference;->setOnPreferenceChangeListener(Landroid/preference/Preference$OnPreferenceChangeListener;)V[/COLOR]

invoke-virtual {p0}, Lcom/android/settings/DisplaySettings;->getActivity()Landroid/app/Activity;

move-result-object v11

invoke-static {v11}, Lcom/android/settings/Utils;->isTablet(Landroid/content/Context;)Z

move-result v11

if-eqz v11, :cond_6

.method public onPreferenceChange(Landroid/preference/Preference;Ljava/lang/Object;)Z

:catch_2
move-exception v0

.line 1038
const-string v1, "DisplaySettings"

const-string v2, "could not persist Touch key light setting"

invoke-static {v1, v2, v0}, Landroid/util/Log;->secE(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I

goto/16 :goto_4

.line 1040
:cond_9
[COLOR="red"]const-string v2, "volume_panel_timeout"

invoke-virtual {v2, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

move-result v2

if-eqz v2, :cond_next

check-cast p2, Ljava/lang/String;

invoke-static {p2}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I

move-result v0

invoke-virtual {p0}, Lcom/android/settings/DisplaySettings;->getContentResolver()Landroid/content/ContentResolver;

move-result-object v1

const-string v2, "volume_panel_timeout"

invoke-static {v1, v2, v0}, Landroid/provider/Settings$System;->putInt(Landroid/content/ContentResolver;Ljava/lang/String;I)Z

iget-object v1, p0, Lcom/android/settings/DisplaySettings;->mVolumePanel:Landroid/preference/ListPreference;

invoke-static {v0}, Ljava/lang/String;->valueOf(I)Ljava/lang/String;

move-result-object v0

invoke-virtual {v1, v0}, Landroid/preference/ListPreference;->setValue(Ljava/lang/String;)V

iget-object v0, p0, Lcom/android/settings/DisplaySettings;->mVolumePanel:Landroid/preference/ListPreference;

iget-object v1, p0, Lcom/android/settings/DisplaySettings;->mVolumePanel:Landroid/preference/ListPreference;

invoke-virtual {v1}, Landroid/preference/ListPreference;->getEntry()Ljava/lang/CharSequence;

move-result-object v1

invoke-virtual {v0, v1}, Landroid/preference/ListPreference;->setSummary(Ljava/lang/CharSequence;)V

goto/16 :goto_4

:cond_next[/COLOR]
const-string v2, "quick_launch"

invoke-virtual {v2, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

move-result v2

That's it for SecSettings. Compile.

framework.jar

Navigate to /smali/android/view/VolumePanel.smali

Find .method private resetTimeout()V

and replace the entire thing with this:

.method private resetTimeout()V
.locals 5

.prologue
const/4 v4, 0x5

.line 16
iget-object v1, p0, Landroid/view/VolumePanel;->mContext:Landroid/content/Context;

invoke-virtual {v1}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;

move-result-object v1

.line 17
const-string v2, "volume_panel_timeout"

const/4 v3, 0x0

.line 16
invoke-static {v1, v2, v3}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I

move-result v0

.line 18
.local v0, temp:I
invoke-virtual {p0, v4}, Landroid/view/VolumePanel;->removeMessages(I)V

.line 19
if-eqz v0, :cond_0

.line 20
invoke-virtual {p0, v4}, Landroid/view/VolumePanel;->obtainMessage(I)Landroid/os/Message;

move-result-object v1

int-to-long v2, v0

invoke-virtual {p0, v1, v2, v3}, Landroid/view/VolumePanel;->sendMessageDelayed(Landroid/os/Message;J)Z

.line 24
:goto_0
return-void

.line 22
:cond_0
invoke-virtual {p0, v4}, Landroid/view/VolumePanel;->obtainMessage(I)Landroid/os/Message;

move-result-object v1

const-wide/16 v2, 0xbb8

invoke-virtual {p0, v1, v2, v3}, Landroid/view/VolumePanel;->sendMessageDelayed(Landroid/os/Message;J)Z

goto :goto_0
.end method

Now compile framework.jar (Make sure you compile it correctly adding back the META-INF and preloaded-classes files)