[Sony Ericsson Xperia Mini, Mini Pro, Xperia Pro, A] serajr:
v7.1 preferences/settings popup menus don´t working - Fix

As has been reported here numerous times, the popup menus do not work anymore after editing the original version of the mod, so let's fix that!

1. Edit PhoneStatusBar$27.smali (\smali\com\android\systemui\statusbar\phone) with notepad++

2. Find (ctrl+f) for # virtual methods

3. Underneath this line there are two onMenuItemClick methods, and this is causing the problem!! The first red method should be deleted.

# virtual methods
[COLOR="Red"].method public onMenuItemClick(Landroid/view/MenuItem;)Z
.locals 2
.parameter "item"

.prologue
const/4 v1, 0x1

.line 99
invoke-interface {p1}, Landroid/view/MenuItem;->getItemId()I

move-result v0

packed-switch v0, :pswitch_data_0

.line 113
:goto_0
return v1

.line 103
:pswitch_0
iget-object v0, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar$27;->this$0:Lcom/android/systemui/statusbar/phone/PhoneStatusBar;

invoke-virtual {v0}, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->animateCollapse()V

.line 105
invoke-direct {p0}, Lcom/android/systemui/statusbar/phone/PhoneStatusBar$27;->startSystemUIPreferences()V

goto :goto_0

.line 108
:pswitch_1
iget-object v0, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar$27;->this$0:Lcom/android/systemui/statusbar/phone/PhoneStatusBar;

invoke-virtual {v0}, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->animateCollapse()V

.line 110
invoke-direct {p0}, Lcom/android/systemui/statusbar/phone/PhoneStatusBar$27;->startSystemSettings()V

goto :goto_0

.line 99
nop

:pswitch_data_0
.packed-switch 0x7f070001
:pswitch_1
:pswitch_0
.end packed-switch
.end method[/COLOR]

.method public onMenuItemClick(Landroid/view/MenuItem;)Z
.locals 4
.parameter "item"

.prologue
const/4 v3, 0x1

.line 101
invoke-interface {p1}, Landroid/view/MenuItem;->getTitle()Ljava/lang/CharSequence;

move-result-object v0

iget-object v1, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar$27;->this$0:Lcom/android/systemui/statusbar/phone/PhoneStatusBar;

#getter for: Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mContext:Landroid/content/Context;
invoke-static {v1}, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->access$900(Lcom/android/systemui/statusbar/phone/PhoneStatusBar;)Landroid/content/Context;

move-result-object v1

invoke-virtual {v1}, Landroid/content/Context;->getResources()Landroid/content/res/Resources;

move-result-object v1

const v2, 0x7f0800ac

invoke-virtual {v1, v2}, Landroid/content/res/Resources;->getString(I)Ljava/lang/String;

move-result-object v1

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

move-result v0

if-eqz v0, :cond_0

.line 103
invoke-direct {p0}, Lcom/android/systemui/statusbar/phone/PhoneStatusBar$27;->startSystemUIPreferences()V

.line 104
iget-object v0, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar$27;->this$0:Lcom/android/systemui/statusbar/phone/PhoneStatusBar;

invoke-virtual {v0}, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->animateCollapse()V

.line 105
:cond_0
invoke-interface {p1}, Landroid/view/MenuItem;->getTitle()Ljava/lang/CharSequence;

move-result-object v0

iget-object v1, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar$27;->this$0:Lcom/android/systemui/statusbar/phone/PhoneStatusBar;

#getter for: Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mContext:Landroid/content/Context;
invoke-static {v1}, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->access$900(Lcom/android/systemui/statusbar/phone/PhoneStatusBar;)Landroid/content/Context;

move-result-object v1

invoke-virtual {v1}, Landroid/content/Context;->getResources()Landroid/content/res/Resources;

move-result-object v1

const v2, 0x7f0800ad

invoke-virtual {v1, v2}, Landroid/content/res/Resources;->getString(I)Ljava/lang/String;

move-result-object v1

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

move-result v0

if-eqz v0, :cond_1

.line 107
invoke-direct {p0}, Lcom/android/systemui/statusbar/phone/PhoneStatusBar$27;->startSystemSettings()V

.line 110
iget-object v0, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar$27;->this$0:Lcom/android/systemui/statusbar/phone/PhoneStatusBar;

invoke-virtual {v0}, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->animateCollapse()V

.line 111
:cond_1
return v3
.end method

4. So you´ll get:

# virtual methods
.method public onMenuItemClick(Landroid/view/MenuItem;)Z
.locals 4
.parameter "item"

.prologue
const/4 v3, 0x1

.line 101
invoke-interface {p1}, Landroid/view/MenuItem;->getTitle()Ljava/lang/CharSequence;

move-result-object v0

iget-object v1, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar$27;->this$0:Lcom/android/systemui/statusbar/phone/PhoneStatusBar;

#getter for: Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mContext:Landroid/content/Context;
invoke-static {v1}, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->access$900(Lcom/android/systemui/statusbar/phone/PhoneStatusBar;)Landroid/content/Context;

move-result-object v1

invoke-virtual {v1}, Landroid/content/Context;->getResources()Landroid/content/res/Resources;

move-result-object v1

const v2, 0x7f0800ac

invoke-virtual {v1, v2}, Landroid/content/res/Resources;->getString(I)Ljava/lang/String;

move-result-object v1

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

move-result v0

if-eqz v0, :cond_0

.line 103
invoke-direct {p0}, Lcom/android/systemui/statusbar/phone/PhoneStatusBar$27;->startSystemUIPreferences()V

.line 104
iget-object v0, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar$27;->this$0:Lcom/android/systemui/statusbar/phone/PhoneStatusBar;

invoke-virtual {v0}, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->animateCollapse()V

.line 105
:cond_0
invoke-interface {p1}, Landroid/view/MenuItem;->getTitle()Ljava/lang/CharSequence;

move-result-object v0

iget-object v1, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar$27;->this$0:Lcom/android/systemui/statusbar/phone/PhoneStatusBar;

#getter for: Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mContext:Landroid/content/Context;
invoke-static {v1}, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->access$900(Lcom/android/systemui/statusbar/phone/PhoneStatusBar;)Landroid/content/Context;

move-result-object v1

invoke-virtual {v1}, Landroid/content/Context;->getResources()Landroid/content/res/Resources;

move-result-object v1

const v2, 0x7f0800ad

invoke-virtual {v1, v2}, Landroid/content/res/Resources;->getString(I)Ljava/lang/String;

move-result-object v1

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

move-result v0

if-eqz v0, :cond_1

.line 107
invoke-direct {p0}, Lcom/android/systemui/statusbar/phone/PhoneStatusBar$27;->startSystemSettings()V

.line 110
iget-object v0, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar$27;->this$0:Lcom/android/systemui/statusbar/phone/PhoneStatusBar;

invoke-virtual {v0}, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->animateCollapse()V

.line 111
:cond_1
return v3
.end method

If you want a fixed dex file, get attached one, unpack it and replace the existent one inside apk (use 7-Zip) - backup your apk if needed!

This fix will be available on next version.

.

.