[Galaxy S6 General] stangdriver44:
Confirmed, a similar method was working for LP with only a couple of small adjustments need for MM.

Looking good guys!

Here is how got it working.

<item type="id" name="leftsignal">false</item>

recompile or edit your public.xml for new id#

open statusbar.xml in layouts folder and add the line in blue

<com.android.systemui.statusbar.AlphaOptimizedFrameLayout android:orientation="horizontal" android:id="@id/notification_icon_area" android:layout_width="0.0dip" android:layout_height="fill_parent" android:layout_weight="1.0">
<com.android.keyguard.AlphaOptimizedLinearLayout android:id="@id/notification_icon_area_inner" android:layout_width="fill_parent" android:layout_height="fill_parent">
[COLOR="Blue"][B]<LinearLayout android:textColor="#ffffffff" android:orientation="horizontal" android:id="@id/leftsignal" android:paddingTop="3.0dip" android:layout_width="wrap_content" android:layout_height="fill_parent" android:paddingStart="0.0dip" android:paddingEnd="0.0dip" android:layout_marginStart="0.0dip" android:layout_marginEnd="-1.0dip" android:layout_alignParentStart="true" />[/B][/COLOR]

now for the smali

open

com/android/systemui/statusbar/phone/PhoneStatusBar

and add this method

.method public updateSignalPosition()V
.locals 15

const/4 v8, 0x0

const/4 v12, 0x1

iget-object v6, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mContext:Landroid/content/Context;

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

move-result-object v6

const-string v7, "leftsignal"

invoke-static {v6, v7, v8}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I

move-result v1

iget-object v6, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mStatusBarView:Lcom/android/systemui/statusbar/phone/PhoneStatusBarView;

const v7, 0x7f0e036e ###<public type="id" name="[COLOR="red"]leftsignal[/COLOR]" id="0x7f0e036e" />

invoke-virtual {v6, v7}, Lcom/android/systemui/statusbar/phone/PhoneStatusBarView;->findViewById(I)Landroid/view/View;

move-result-object v4

check-cast v4, Landroid/widget/LinearLayout;

iget-object v6, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mStatusBarView:Lcom/android/systemui/statusbar/phone/PhoneStatusBarView;

const v7, 0x7f0e02e8 ###<public type="id" name="[COLOR="red"]notification_icon_area_inner[/COLOR]" id="0x7f0e02e8" />

invoke-virtual {v6, v7}, Lcom/android/systemui/statusbar/phone/PhoneStatusBarView;->findViewById(I)Landroid/view/View;

move-result-object v13

check-cast v13, Lcom/android/keyguard/AlphaOptimizedLinearLayout;

iget-object v6, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mStatusBarView:Lcom/android/systemui/statusbar/phone/PhoneStatusBarView;

const v7, 0x7f0e0331 ###<public type="id" name="[COLOR="red"]signal_battery_cluster[/COLOR]" id="0x7f0e0331" />

invoke-virtual {v6, v7}, Lcom/android/systemui/statusbar/phone/PhoneStatusBarView;->findViewById(I)Landroid/view/View;

move-result-object v2

check-cast v2, Landroid/widget/LinearLayout;

iget-object v6, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mStatusBarView:Lcom/android/systemui/statusbar/phone/PhoneStatusBarView;

const v9, 0x7f0e0332 ###<public type="id" name="[COLOR="red"]signal_cluster[/COLOR]" id="0x7f0e0332" />

invoke-virtual {v6, v9}, Lcom/android/systemui/statusbar/phone/PhoneStatusBarView;->findViewById(I)Landroid/view/View;

move-result-object v0

check-cast v0, Lcom/android/systemui/statusbar/SignalClusterView;

invoke-virtual {v0}, Landroid/view/View;->getParent()Landroid/view/ViewParent;

move-result-object v9

check-cast v9, Landroid/widget/LinearLayout;

invoke-virtual {v9, v0}, Landroid/widget/LinearLayout;->removeView(Landroid/view/View;)V

if-nez v1, :cond_0

invoke-virtual {v2, v0, v8}, Landroid/widget/LinearLayout;->addView(Landroid/view/View;I)V

const v1, 0x3f800000 # 1.0f

invoke-virtual {v0, v1}, Landroid/view/View;->setAlpha(F)V

:goto_0
return-void

:cond_0
invoke-virtual {v4, v0, v8}, Landroid/widget/LinearLayout;->addView(Landroid/view/View;I)V

const/high16 v1, 0x3f800000 # 1.0f

invoke-virtual {v0, v1}, Landroid/view/View;->setAlpha(F)V

goto :goto_0
.end method

to make On-the-fly

invoke like this

iget-object v4, v0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mBatteryTextObserver:Lcom/android/systemui/statusbar/phone/PhoneStatusBar$BatteryTextObserver;

const/4 v5, 0x0

invoke-virtual {v4, v5}, Lcom/android/systemui/statusbar/phone/PhoneStatusBar$BatteryTextObserver;->onChange(Z)V

[COLOR="RoyalBlue"][B]move-object/from16 v0, p0

invoke-virtual {v0}, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->updateSignalPosition()V[/B][/COLOR]

save and open

Update to hide signal on lockscreen when left signal is selected

add line in red

move-object/from16 v0, p0

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

[COLOR="Red"]invoke-virtual {v0}, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->updateKygrdHideLeftSignal()V[/COLOR]

add this method

.method updateKygrdHideLeftSignal()V
.locals 5

iget-object v0, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mKeyguardStatusBar:Lcom/android/systemui/statusbar/phone/KeyguardStatusBarView;

const v1, 0x7f0e0332 ###<public type="id" name="[COLOR="red"]signal_cluster[/COLOR]" id="0x7f0e0332" />

invoke-virtual {v0, v1}, Lcom/android/systemui/statusbar/phone/PhoneStatusBarView;->findViewById(I)Landroid/view/View;

move-result-object v0

check-cast v0, Lcom/android/systemui/statusbar/SignalClusterView;

const v1, 0x1

const/16 v2, 0x8

iget-object v3, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mContext:Landroid/content/Context;

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

move-result-object v3

const-string v4, "leftsignal"

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

move-result v3

const v4, 0x0

if-eq v3, v4, :cond_0

:goto_0
invoke-virtual {v0, v2}, Landroid/view/View;->setVisibility(I)V

return-void

:cond_0
const/4 v2, 0x1

goto :goto_0
.end method

com/android/systemui/statusbar/phone/PhoneStatusBar$SettingsObserver

add these line

const-string v1, "leftsignal"

invoke-static {v1}, Landroid/provider/Settings$System;->getUriFor(Ljava/lang/String;)Landroid/net/Uri;

move-result-object v1

invoke-virtual {v0, v1, v2, p0}, Landroid/content/ContentResolver;->registerContentObserver(Landroid/net/Uri;ZLandroid/database/ContentObserver;)V

and

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

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

and to hide on lockscreen

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

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

now ROM Control

of course you can add it how you like with a switch, but I used this

<com.ozop.romcontrol.prefs.MyListPreference android:entries="@array/SignalPositionName" android:title="Signal Position" android:key="leftsignal" android:defaultValue="0" android:entryValues="@array/SignalPositionValue" />

and arrays

<string-array name="SignalPositionName">
<item>Shown on the Right</item>
<item>Shown on the Left</item>
</string-array>
<string-array name="SignalPositionValue">
<item>0</item>
<item>1</item>
</string-array>