fix screen backlight (brightness slide) gsi rom * - Treble-Enabled Device Guides, News, & Discussion

prehistory: on many recent assemblies, GSI does not work on many vendors, the backlight slider and previous fixes and the presence of overlay.device do not help.
I found a solution :laugh: to return everything as it was :
instruction :
We decompile framework / service.jar and in
\services\smali\com\android\server\lights\LightsService$LightImpl.smali
Replace the whole method
Code:
.method public setBrightness(II)V
to
Code:
.method public setBrightness(II)V
.registers 12
monitor-enter p0
const/4 v0, 0x2
if-ne p2, v0, :cond_2e
:try_start_4
const-string p2, "LightsService"
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string/jumbo v1, "setBrightness with LOW_PERSISTENCE unexpected #"
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget v1, p0, Lcom/android/server/lights/LightsService$LightImpl;->mId:I
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v1, ": brightness=0x"
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-static {p1}, Ljava/lang/Integer;->toHexString(I)Ljava/lang/String;
move-result-object p1
invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
invoke-static {p2, p1}, Landroid/util/Slog;->w(Ljava/lang/String;Ljava/lang/String;)I
monitor-exit p0
return-void
:catchall_2b
move-exception p1
goto/16 :goto_10a
:cond_2e
const/16 v0, 0xff
if-nez p2, :cond_48
invoke-direct {p0}, Lcom/android/server/lights/LightsService$LightImpl;->shouldBeInLowPersistenceMode()Z
move-result v1
if-nez v1, :cond_48
iget v1, p0, Lcom/android/server/lights/LightsService$LightImpl;->mSurfaceControlMaximumBrightness:I
if-ne v1, v0, :cond_48
iget-object p2, p0, Lcom/android/server/lights/LightsService$LightImpl;->mDisplayToken:Landroid/os/IBinder;
int-to-float p1, p1
iget v0, p0, Lcom/android/server/lights/LightsService$LightImpl;->mSurfaceControlMaximumBrightness:I
int-to-float v0, v0
div-float/2addr p1, v0
invoke-static {p2, p1}, Landroid/view/SurfaceControl;->setDisplayBrightness(Landroid/os/IBinder;F)Z
monitor-exit p0
return-void
:cond_48
iget v1, p0, Lcom/android/server/lights/LightsService$LightImpl;->mId:I
if-nez v1, :cond_f5
const-string/jumbo v1, "ro.vendor.build.fingerprint"
const-string v2, "hello"
invoke-static {v1, v2}, Landroid/os/SystemProperties;->get(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object v1
const-string v2, ".*astarqlte.*"
invoke-virtual {v1, v2}, Ljava/lang/String;->matches(Ljava/lang/String;)Z
move-result v2
const-wide v3, 0x406fe00000000000L # 255.0
const/4 v5, 0x0
if-eqz v2, :cond_83
nop
const-string/jumbo v0, "persist.sys.samsung.full_brightness"
invoke-static {v0, v5}, Landroid/os/SystemProperties;->getBoolean(Ljava/lang/String;Z)Z
move-result v0
if-eqz v0, :cond_78
int-to-double v0, p1
const-wide v5, 0x4076d00000000000L # 365.0
mul-double/2addr v0, v5
div-double/2addr v0, v3
double-to-int p1, v0
move v1, p1
goto :goto_79
:cond_78
move v1, p1
:goto_79
const/4 v2, 0x2
const/4 v3, 0x0
const/4 v4, 0x0
move-object v0, p0
move v5, p2
invoke-direct/range {v0 .. v5}, Lcom/android/server/lights/LightsService$LightImpl;->setLightLocked(IIIII)V
monitor-exit p0
return-void
:cond_83
const-string/jumbo v2, "persist.sys.phh.samsung_backlight"
const/4 v6, -0x1
invoke-static {v2, v6}, Landroid/os/SystemProperties;->getInt(Ljava/lang/String;I)I
move-result v2
const/4 v7, 0x1
if-eqz v2, :cond_ca
if-gtz v2, :cond_a8
const-string v8, ".*beyond.*lte.*"
invoke-virtual {v1, v8}, Ljava/lang/String;->matches(Ljava/lang/String;)Z
move-result v8
if-nez v8, :cond_a8
const-string v8, ".*(crown|star)[q2]*lte.*"
invoke-virtual {v1, v8}, Ljava/lang/String;->matches(Ljava/lang/String;)Z
move-result v8
if-nez v8, :cond_a8
const-string v8, ".*(SC-0[23]K|SCV3[89]).*"
invoke-virtual {v1, v8}, Ljava/lang/String;->matches(Ljava/lang/String;)Z
move-result v1
if-eqz v1, :cond_ca
:cond_a8
const/16 v0, 0x64
if-le v2, v7, :cond_ad
move v0, v2
:cond_ad
mul-int/2addr v0, p1
const-string/jumbo v1, "persist.sys.samsung.full_brightness"
invoke-static {v1, v5}, Landroid/os/SystemProperties;->getBoolean(Ljava/lang/String;Z)Z
move-result v1
if-eqz v1, :cond_bf
int-to-double v0, p1
const-wide/high16 v5, 0x40e4000000000000L # 40960.0
mul-double/2addr v0, v5
div-double/2addr v0, v3
double-to-int v0, v0
move v2, v0
goto :goto_c0
:cond_bf
move v2, v0
:goto_c0
const/4 v3, 0x2
const/4 v4, 0x0
const/4 v5, 0x0
move-object v1, p0
move v6, p2
invoke-direct/range {v1 .. v6}, Lcom/android/server/lights/LightsService$LightImpl;->setLightLocked(IIIII)V
monitor-exit p0
return-void
:cond_ca
const-string/jumbo v1, "persist.extend.brightness"
invoke-static {v1, v5}, Landroid/os/SystemProperties;->getBoolean(Ljava/lang/String;Z)Z
move-result v1
const-string/jumbo v2, "persist.display.max_brightness"
const/16 v3, 0x3ff
invoke-static {v2, v3}, Landroid/os/SystemProperties;->getInt(Ljava/lang/String;I)I
move-result v2
const-string/jumbo v3, "persist.sys.qcom-brightness"
invoke-static {v3, v6}, Landroid/os/SystemProperties;->getInt(Ljava/lang/String;I)I
move-result v3
if-eq v3, v6, :cond_e6
nop
move v2, v3
move v1, v7
:cond_e6
if-eqz v1, :cond_f5
mul-int/2addr p1, v2
div-int/lit16 v2, p1, 0xff
const/4 v3, 0x0
const/4 v4, 0x0
const/4 v5, 0x0
move-object v1, p0
move v6, p2
invoke-direct/range {v1 .. v6}, Lcom/android/server/lights/LightsService$LightImpl;->setLightLocked(IIIII)V
monitor-exit p0
return-void
:cond_f5
and-int/2addr p1, v0
const/high16 v0, -0x1000000
shl-int/lit8 v1, p1, 0x10
or-int/2addr v0, v1
shl-int/lit8 v1, p1, 0x8
or-int/2addr v0, v1
or-int v2, v0, p1
const/4 v3, 0x0
const/4 v4, 0x0
const/4 v5, 0x0
move-object v1, p0
move v6, p2
invoke-direct/range {v1 .. v6}, Lcom/android/server/lights/LightsService$LightImpl;->setLightLocked(IIIII)V
monitor-exit p0
return-void
:goto_10a
monitor-exit p0
:try_end_10b
.catchall {:try_start_4 .. :try_end_10b} :catchall_2b
throw p1
.end method
compile service.jar ,
backup in twrp system , and replace service.jar.
if you do not have overlay on your device, then you have to do this:
adb console :
Code:
adb shell su -c setprop persist.sys.qcom-brightness $(cat /sys/class/leds/lcd-backlight/max_brightness)
or from the phone in the terminal emulator :
Code:
su
setprop persist.sys.qcom-brightness $(cat /sys/class/leds/lcd-backlight/max_brightness)
reboot .
it works on many rom, but I can not say that at all)

Related

[MOD] True 6 signal bar mod

So first off big thanks to dsb9938 for the help. We worked on this together till we finally narrowed it down. This is a real 6 signal. The math is done and instead of calculating for 4 it does it for 6.
There are plenty of tutorials for decompiling apk's so that will not be covered here...
1. Decompile SystemUI.apk
2. Open \smali\com\android\systemui\statusbar\policy\HtcCd maStatusBar.smali
3. Change ".field protected static final htcCdma6LevelSignalStrength:Z = null" to ".field protected static final htcCdma6LevelSignalStrength:Z = true"
4. Change "sget-object v0, Lcom/android/systemui/statusbar/policy/HtcCdmaStatusBar;->htcCdma4SignalImages:[[I" to "sget-object v0, Lcom/android/systemui/statusbar/policy/HtcCdmaStatusBar;->htcCdma6SignalImages:[[I"
5. Change "sget-object v0, Lcom/android/systemui/statusbar/policy/HtcCdmaStatusBar;->htcCdma4SignalImages_flash:[[I" to "sget-object v0, Lcom/android/systemui/statusbar/policy/HtcCdmaStatusBar;->htcCdma6SignalImages_flash:[[I"
6. Change "sget-object v0, Lcom/android/systemui/statusbar/policy/HtcCdmaStatusBar;->htcCdma4SignalImages_r:[[I" to "sget-object v0, Lcom/android/systemui/statusbar/policy/HtcCdmaStatusBar;->htcCdma6SignalImages_r:[[I"
7. Open \smali\com\android\systemui\statusbar\policy\StatusBarPolicy.smali
8. Change "const/4 v1, 0x4" to "const/4 v1, 0x6" ***thanks to aamikam for this step.
Now, I wasn't sure how to write up the next part. It is a lot of changes. But you can choose how you do it. If you are using a stock rom you should be able to just copy and replace the entire method without and issue. On other roms you might end up with screwed up icons. So to me the easiest would be to diff the your smali and the 3 methods below and change only whats necessary ignoring line numbers.
9. Open \smali\com\android\systemui\statusbar\policy\StatusBarPolicy.smali
10. find and replace or merge.
Code:
.method private getEvdoLevel()I
.locals 7
.prologue
.line 2542
iget-object v6, p0, Lcom/android/systemui/statusbar/policy/StatusBarPolicy;->mSignalStrength:Landroid/telephony/SignalStrength;
invoke-virtual {v6}, Landroid/telephony/SignalStrength;->getEvdoDbm()I
move-result v0
.line 2543
.local v0, evdoDbm:I
iget-object v6, p0, Lcom/android/systemui/statusbar/policy/StatusBarPolicy;->mSignalStrength:Landroid/telephony/SignalStrength;
invoke-virtual {v6}, Landroid/telephony/SignalStrength;->getEvdoSnr()I
move-result v2
.line 2544
.local v2, evdoSnr:I
iget-object v6, p0, Lcom/android/systemui/statusbar/policy/StatusBarPolicy;->mSignalStrength:Landroid/telephony/SignalStrength;
invoke-virtual {v6}, Landroid/telephony/SignalStrength;->getEvdoEcio()I
move-result v1
.line 2545
.local v1, evdoEcio:I
const/4 v3, 0x0
.line 2546
.local v3, levelEvdoDbm:I
const/4 v5, 0x0
.line 2547
.local v5, levelEvdoSnr:I
const/4 v4, 0x0
.line 2572
.local v4, levelEvdoEcio:I
const/16 v6, -0x41
if-lt v0, v6, :cond_0
const/4 v3, 0x4
.line 2578
:goto_0
const/4 v6, 0x7
if-lt v2, v6, :cond_4
const/4 v5, 0x4
.line 2584
:goto_1
if-ge v3, v5, :cond_8
move v6, v3
:goto_2
return v6
.line 2573
:cond_0
const/16 v6, -0x4b
if-lt v0, v6, :cond_1
const/4 v3, 0x3
goto :goto_0
.line 2574
:cond_1
const/16 v6, -0x5a
if-lt v0, v6, :cond_2
const/4 v3, 0x2
goto :goto_0
.line 2575
:cond_2
const/16 v6, -0x69
if-lt v0, v6, :cond_3
const/4 v3, 0x1
goto :goto_0
.line 2576
:cond_3
const/4 v3, 0x0
goto :goto_0
.line 2579
:cond_4
const/4 v6, 0x5
if-lt v2, v6, :cond_5
const/4 v5, 0x3
goto :goto_1
.line 2580
:cond_5
const/4 v6, 0x3
if-lt v2, v6, :cond_6
const/4 v5, 0x2
goto :goto_1
.line 2581
:cond_6
const/4 v6, 0x1
if-lt v2, v6, :cond_7
const/4 v5, 0x1
goto :goto_1
.line 2582
:cond_7
const/4 v5, 0x0
goto :goto_1
:cond_8
move v6, v5
.line 2584
goto :goto_2
.end method
10. find and replace or merge
Code:
.method private final updateSignalStrength()V
.locals 12
.prologue
const/4 v10, 0x2
const/4 v9, 0x1
const/4 v8, 0x0
const-string v11, "phone_signal"
const-string v7, "StatusBarPolicy"
.line 2215
const/4 v2, -0x1
.line 2224
.local v2, iconLevel:I
const/4 v5, 0x0
new-instance v6, Ljava/lang/Integer;
invoke-direct {v6, v8}, Ljava/lang/Integer;-><init>(I)V
invoke-direct {p0, v5, v6}, Lcom/android/systemui/statusbar/policy/StatusBarPolicy;->getHtcServiceState(Ljava/lang/Boolean;Ljava/lang/Integer;)Landroid/telephony/ServiceState;
move-result-object v4
.line 2228
.local v4, ss:Landroid/telephony/ServiceState;
if-eqz v4, :cond_1
invoke-direct {p0, v4}, Lcom/android/systemui/statusbar/policy/StatusBarPolicy;->hasService(Landroid/telephony/ServiceState;)Z
move-result v5
if-nez v5, :cond_1
.line 2232
iget-object v5, p0, Lcom/android/systemui/statusbar/policy/StatusBarPolicy;->mContext:Landroid/content/Context;
invoke-virtual {v5}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;
move-result-object v5
const-string v6, "airplane_mode_on"
invoke-static {v5, v6, v8}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I
move-result v5
if-ne v5, v9, :cond_0
.line 2234
const v5, 0x7f02012d
iput v5, p0, Lcom/android/systemui/statusbar/policy/StatusBarPolicy;->mPhoneSignalIconId:I
.line 2248
:goto_0
iget-object v5, p0, Lcom/android/systemui/statusbar/policy/StatusBarPolicy;->mService:Landroid/app/StatusBarManager;
const-string v6, "phone_signal"
iget v7, p0, Lcom/android/systemui/statusbar/policy/StatusBarPolicy;->mPhoneSignalIconId:I
invoke-virtual {v5, v6, v7, v8}, Landroid/app/StatusBarManager;->setIcon(Ljava/lang/String;II)V
.line 2449
:goto_1
return-void
.line 2244
:cond_0
const v5, 0x7f02012e
iput v5, p0, Lcom/android/systemui/statusbar/policy/StatusBarPolicy;->mPhoneSignalIconId:I
goto :goto_0
.line 2252
:cond_1
sget-object v5, Ljava/lang/Boolean;->TRUE:Ljava/lang/Boolean;
new-instance v6, Ljava/lang/Integer;
invoke-direct {v6, v8}, Ljava/lang/Integer;-><init>(I)V
invoke-direct {p0, v5, v6}, Lcom/android/systemui/statusbar/policy/StatusBarPolicy;->getHtcServiceState(Ljava/lang/Boolean;Ljava/lang/Integer;)Landroid/telephony/ServiceState;
move-result-object v4
.line 2255
invoke-direct {p0}, Lcom/android/systemui/statusbar/policy/StatusBarPolicy;->isCdma()Z
move-result v5
if-nez v5, :cond_d
.line 2257
iget-object v5, p0, Lcom/android/systemui/statusbar/policy/StatusBarPolicy;->mPhone:Landroid/telephony/TelephonyManager;
invoke-virtual {v5}, Landroid/telephony/TelephonyManager;->getPhoneType()I
move-result v5
if-eq v5, v9, :cond_2
.line 2262
:cond_2
iget-object v5, p0, Lcom/android/systemui/statusbar/policy/StatusBarPolicy;->mSignalStrength:Landroid/telephony/SignalStrength;
invoke-virtual {v5}, Landroid/telephony/SignalStrength;->getGsmSignalStrength()I
move-result v0
.line 2310
.local v0, asu:I
const-string v5, "StatusBarPolicy"
new-instance v5, Ljava/lang/StringBuilder;
invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
const-string v6, "GSM asu:"
invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v5
invoke-virtual {v5, v0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-result-object v5
invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v5
invoke-static {v7, v5}, Landroid/util/Slog;->d(Ljava/lang/String;Ljava/lang/String;)I
if-le v0, v9, :cond_3
const/16 v5, 0x63
if-ne v0, v5, :cond_7
:cond_3
const/4 v2, 0x0
.line 2319
:goto_2
iget-object v5, p0, Lcom/android/systemui/statusbar/policy/StatusBarPolicy;->mPhone:Landroid/telephony/TelephonyManager;
invoke-virtual {v5}, Landroid/telephony/TelephonyManager;->isNetworkRoaming()Z
move-result v5
if-eqz v5, :cond_c
.line 2320
sget-object v5, Lcom/android/systemui/statusbar/policy/StatusBarPolicy;->sSignalImages_r:[[I
iget v6, p0, Lcom/android/systemui/statusbar/policy/StatusBarPolicy;->mInetCondition:I
aget-object v3, v5, v6
.line 2441
.end local v0 #asu:I
.local v3, iconList:[I
:cond_4
:goto_3
array-length v5, v3
if-gt v2, v5, :cond_5
if-gez v2, :cond_6
.line 2442
:cond_5
const/4 v2, 0x0
.line 2444
const-string v5, "StatusBarPolicy"
const-string v5, "OoO fix iconLevel index range !"
invoke-static {v7, v5}, Landroid/util/Slog;->d(Ljava/lang/String;Ljava/lang/String;)I
.line 2447
:cond_6
aget v5, v3, v2
iput v5, p0, Lcom/android/systemui/statusbar/policy/StatusBarPolicy;->mPhoneSignalIconId:I
.line 2448
iget-object v5, p0, Lcom/android/systemui/statusbar/policy/StatusBarPolicy;->mService:Landroid/app/StatusBarManager;
const-string v6, "phone_signal"
iget v7, p0, Lcom/android/systemui/statusbar/policy/StatusBarPolicy;->mPhoneSignalIconId:I
invoke-virtual {v5, v6, v7, v8}, Landroid/app/StatusBarManager;->setIcon(Ljava/lang/String;II)V
goto :goto_1
.line 2311
.end local v3 #iconList:[I
.restart local v0 #asu:I
:cond_7
const/16 v5, 0xc
if-lt v0, v5, :cond_8
const/4 v2, 0x4
goto :goto_2
.line 2312
:cond_8
const/16 v5, 0x8
if-lt v0, v5, :cond_9
const/4 v2, 0x3
goto :goto_2
.line 2313
:cond_9
const/4 v5, 0x4
if-lt v0, v5, :cond_a
const/4 v2, 0x2
goto :goto_2
.line 2314
:cond_a
if-lt v0, v10, :cond_b
const/4 v2, 0x1
goto :goto_2
.line 2315
:cond_b
const/4 v2, 0x1
goto :goto_2
.line 2322
:cond_c
sget-object v5, Lcom/android/systemui/statusbar/policy/StatusBarPolicy;->sSignalImages:[[I
iget v6, p0, Lcom/android/systemui/statusbar/policy/StatusBarPolicy;->mInetCondition:I
aget-object v3, v5, v6
.restart local v3 #iconList:[I
goto :goto_3
.line 2331
.end local v0 #asu:I
.end local v3 #iconList:[I
:cond_d
iget-object v5, p0, Lcom/android/systemui/statusbar/policy/StatusBarPolicy;->mPhone:Landroid/telephony/TelephonyManager;
invoke-virtual {v5}, Landroid/telephony/TelephonyManager;->getPhoneType()I
move-result v5
if-eq v5, v10, :cond_e
.line 2351
:cond_e
invoke-static {}, Lcom/android/systemui/statusbar/policy/HtcCdmaStatusBar;->getSignalStrengthIconList()[[I
move-result-object v5
iget v6, p0, Lcom/android/systemui/statusbar/policy/StatusBarPolicy;->mInetCondition:I
aget-object v3, v5, v6
.line 2352
.restart local v3 #iconList:[I
const/4 v1, 0x0
.line 2353
.local v1, iconIndex:I
if-eqz v4, :cond_f
.line 2354
invoke-virtual {v4}, Landroid/telephony/ServiceState;->getCdmaEriIconIndex()I
move-result v1
.line 2355
const-string v5, "StatusBarPolicy"
new-instance v5, Ljava/lang/StringBuilder;
invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
const-string v6, "iconIndex="
invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v5
invoke-virtual {v5, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-result-object v5
invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v5
invoke-static {v7, v5}, Landroid/util/Slog;->d(Ljava/lang/String;Ljava/lang/String;)I
.line 2358
:cond_f
packed-switch v1, :pswitch_data_0
.line 2369
iget-object v5, p0, Lcom/android/systemui/statusbar/policy/StatusBarPolicy;->mPhone:Landroid/telephony/TelephonyManager;
invoke-virtual {v5}, Landroid/telephony/TelephonyManager;->isNetworkRoaming()Z
move-result v5
if-eqz v5, :cond_10
.line 2371
invoke-static {}, Lcom/android/systemui/statusbar/policy/HtcCdmaStatusBar;->getSignalStrengthIconList_r()[[I
move-result-object v5
iget v6, p0, Lcom/android/systemui/statusbar/policy/StatusBarPolicy;->mInetCondition:I
aget-object v3, v5, v6
.line 2386
:goto_4
invoke-direct {p0}, Lcom/android/systemui/statusbar/policy/StatusBarPolicy;->getCdmaLevelDirectly()I
move-result v2
.line 2387
const-string v5, "StatusBarPolicy"
new-instance v5, Ljava/lang/StringBuilder;
invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
const-string v6, "iconLevel:"
invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v5
invoke-virtual {v5, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-result-object v5
invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v5
invoke-static {v7, v5}, Landroid/util/Slog;->d(Ljava/lang/String;Ljava/lang/String;)I
.line 2389
const/4 v5, -0x1
if-ne v2, v5, :cond_4
.line 2394
sget-object v5, Ljava/lang/Boolean;->FALSE:Ljava/lang/Boolean;
invoke-direct {p0, v5}, Lcom/android/systemui/statusbar/policy/StatusBarPolicy;->isLte(Ljava/lang/Boolean;)Z
move-result v5
if-eqz v5, :cond_11
.line 2395
invoke-direct {p0}, Lcom/android/systemui/statusbar/policy/StatusBarPolicy;->getLteLevel()I
move-result v2
.line 2396
const-string v5, "StatusBarPolicy"
new-instance v5, Ljava/lang/StringBuilder;
invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
const-string v6, "Use LTE level="
invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v5
invoke-virtual {v5, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-result-object v5
const-string v6, " to replace Cdma Level="
invoke-virtual {v5, v11}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v5
invoke-direct {p0}, Lcom/android/systemui/statusbar/policy/StatusBarPolicy;->getCdmaLevel()I
move-result v6
invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-result-object v5
invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v5
invoke-static {v7, v5}, Landroid/util/Slog;->d(Ljava/lang/String;Ljava/lang/String;)I
goto/16 :goto_3
.line 2360
:pswitch_0
invoke-static {}, Lcom/android/systemui/statusbar/policy/HtcCdmaStatusBar;->getSignalStrengthIconList_r()[[I
move-result-object v5
iget v6, p0, Lcom/android/systemui/statusbar/policy/StatusBarPolicy;->mInetCondition:I
aget-object v3, v5, v6
.line 2361
goto :goto_4
.line 2363
:pswitch_1
invoke-static {}, Lcom/android/systemui/statusbar/policy/HtcCdmaStatusBar;->getSignalStrengthIconList()[[I
move-result-object v5
iget v6, p0, Lcom/android/systemui/statusbar/policy/StatusBarPolicy;->mInetCondition:I
aget-object v3, v5, v6
.line 2364
goto :goto_4
.line 2366
:pswitch_2
invoke-static {}, Lcom/android/systemui/statusbar/policy/HtcCdmaStatusBar;->getSignalStrengthIconList_flash()[[I
move-result-object v5
iget v6, p0, Lcom/android/systemui/statusbar/policy/StatusBarPolicy;->mInetCondition:I
aget-object v3, v5, v6
.line 2367
goto :goto_4
.line 2375
:cond_10
invoke-static {}, Lcom/android/systemui/statusbar/policy/HtcCdmaStatusBar;->getSignalStrengthIconList()[[I
move-result-object v5
iget v6, p0, Lcom/android/systemui/statusbar/policy/StatusBarPolicy;->mInetCondition:I
aget-object v3, v5, v6
goto :goto_4
.line 2400
:cond_11
sget-object v5, Ljava/lang/Boolean;->FALSE:Ljava/lang/Boolean;
invoke-direct {p0, v5}, Lcom/android/systemui/statusbar/policy/StatusBarPolicy;->isEvdo(Ljava/lang/Boolean;)Z
move-result v5
if-eqz v5, :cond_12
.line 2401
invoke-direct {p0}, Lcom/android/systemui/statusbar/policy/StatusBarPolicy;->getEvdoLevel()I
move-result v2
.line 2402
const-string v5, "StatusBarPolicy"
new-instance v5, Ljava/lang/StringBuilder;
invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
const-string v6, "Use Evdo level="
invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v5
invoke-virtual {v5, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-result-object v5
const-string v6, " to replace Cdma Level="
invoke-virtual {v5, v11}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v5
invoke-direct {p0}, Lcom/android/systemui/statusbar/policy/StatusBarPolicy;->getCdmaLevel()I
move-result v6
invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-result-object v5
invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v5
invoke-static {v7, v5}, Landroid/util/Slog;->d(Ljava/lang/String;Ljava/lang/String;)I
goto/16 :goto_3
.line 2407
:cond_12
invoke-direct {p0}, Lcom/android/systemui/statusbar/policy/StatusBarPolicy;->getCdmaLevel()I
move-result v2
goto/16 :goto_3
.line 2358
nop
:pswitch_data_0
.packed-switch 0x0
:pswitch_0
:pswitch_1
:pswitch_2
.end packed-switch
.end method
11. Find and replace or merge
Code:
.method private getCdmaLevelDirectly()I
.locals 5
.prologue
const-string v4, "StatusBarPolicy"
const/4 v0, -0x1
.line 2453
.local v0, cdmaLevel:I
const/4 v1, 0x4
.line 2454
.local v1, maxCdmaLevel:I
const-string v2, "StatusBarPolicy"
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "cdmaLevel:"
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-result-object v2
const-string v3, ";max:"
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v2, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-static {v4, v2}, Landroid/util/Slog;->v(Ljava/lang/String;Ljava/lang/String;)I
.line 2457
if-le v0, v1, :cond_0
.line 2459
move v0, v1
.line 2460
const-string v2, "StatusBarPolicy"
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "cdmaLevel > maxCdmaLevel, assign cdmaLevel= "
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-static {v4, v2}, Landroid/util/Slog;->d(Ljava/lang/String;Ljava/lang/String;)I
.line 2462
:cond_0
if-gez v0, :cond_1
.line 2464
const/4 v0, -0x1
.line 2465
const-string v2, "StatusBarPolicy"
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "cdmaLevel < 0, cdmaLevel= "
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-static {v4, v2}, Landroid/util/Slog;->d(Ljava/lang/String;Ljava/lang/String;)I
.line 2469
:cond_1
return v0
.end method
Nons3ns3 has a 6 bar
Sent from my ADR6400L using xda premium
nocoast said:
Nons3ns3 has a 6 bar
Sent from my ADR6400L using xda premium
Click to expand...
Click to collapse
So does BAMF. But if I wanted to just take it, I wouldn't have posted this thread. Not trying to be an ass just a statement.
the question is...why don't you want to take it?
---------- Post added at 12:23 AM ---------- Previous post was at 12:22 AM ----------
i just don't see the point in causing problems for yourself when there are obvious solutions out there...
nocoast said:
the question is...why don't you want to take it?
---------- Post added at 12:23 AM ---------- Previous post was at 12:22 AM ----------
i just don't see the point in causing problems for yourself when there are obvious solutions out there...
Click to expand...
Click to collapse
To come up with our own ways of solving stuff. Why depend on other peoples work to make it through
jmztaylor said:
To come up with our own ways of solving stuff. Why depend on other peoples work to make it through
Click to expand...
Click to collapse
Very well said
Sent from my HTC ThunderBolt using Tapatalk
Thread updated and fully working
So far every six bar mod I've seen, BAMF, Synergy, Gingeritus, results in bars that don't always follow the signal. For example, with my phone laying on a desk and not moving, I could watch the signal bars drop to minimum signal and then back to normal. The signal strength in dbm did not change. Sometimes the dbm would show a better signal and the bars in the notification area would go down and then back up. Does this one solve that?
l7777 said:
So far every six bar mod I've seen, BAMF, Synergy, Gingeritus, results in bars that don't always follow the signal. For example, with my phone laying on a desk and not moving, I could watch the signal bars drop to minimum signal and then back to normal. The signal strength in dbm did not change. Sometimes the dbm would show a better signal and the bars in the notification area would go down and then back up. Does this one solve that?
Click to expand...
Click to collapse
Thats a good point. I have not looked for that so I can't say whether it will or not.
question regarding the part about const/4 v1, 0x4
When you say to replace const/4 v1, 0x4 with const/4 v1, 0x6. Are you referring only to the first instance of this constant in that .smali file or all 3 instances?
thx!
izzaeroth said:
When you say to replace const/4 v1, 0x4 with const/4 v1, 0x6. Are you referring only to the first instance of this constant in that .smali file or all 3 instances?
thx!
Click to expand...
Click to collapse
Look around each one. Look for something about signal or 6bars or similar. Only one will be near that stuff.
jmztaylor said:
Look around each one. Look for something about signal or 6bars or similar. Only one will be near that stuff.
Click to expand...
Click to collapse
Thx again. One last question on that. Should that change be done as the last step or first?
izzaeroth said:
Thx again. One last question on that. Should that change be done as the last step or first?
Click to expand...
Click to collapse
it doesn't matter. as long as it gets done
this work on ICS as well?
je2854 said:
this work on ICS as well?
Click to expand...
Click to collapse
There is no way this will work for ICS. This mod was made for a different android version. The frameworks are totally different.
Sent from my ADR6400L using Tapatalk 2
hi, plz help
jmz said:
So first off big thanks to dsb9938 for the help. We worked on this together till we finally narrowed it down. This is a real 6 signal. The math is done and instead of calculating for 4 it does it for 6.
There are plenty of tutorials for decompiling apk's so that will not be covered here...
1. Decompile SystemUI.apk
2. Open \smali\com\android\systemui\statusbar\policy\HtcCd maStatusBar.smali
3. Change ".field protected static final htcCdma6LevelSignalStrength:Z = null" to ".field protected static final htcCdma6LevelSignalStrength:Z = true"
4. Change "sget-object v0, Lcom/android/systemui/statusbar/policy/HtcCdmaStatusBar;->htcCdma4SignalImages:[[I" to "sget-object v0, Lcom/android/systemui/statusbar/policy/HtcCdmaStatusBar;->htcCdma6SignalImages:[[I"
5. Change "sget-object v0, Lcom/android/systemui/statusbar/policy/HtcCdmaStatusBar;->htcCdma4SignalImages_flash:[[I" to "sget-object v0, Lcom/android/systemui/statusbar/policy/HtcCdmaStatusBar;->htcCdma6SignalImages_flash:[[I"
6. Change "sget-object v0, Lcom/android/systemui/statusbar/policy/HtcCdmaStatusBar;->htcCdma4SignalImages_r:[[I" to "sget-object v0, Lcom/android/systemui/statusbar/policy/HtcCdmaStatusBar;->htcCdma6SignalImages_r:[[I"
7. Open \smali\com\android\systemui\statusbar\policy\StatusBarPolicy.smali
8. Change "const/4 v1, 0x4" to "const/4 v1, 0x6" ***thanks to aamikam for this step.
Now, I wasn't sure how to write up the next part. It is a lot of changes. But you can choose how you do it. If you are using a stock rom you should be able to just copy and replace the entire method without and issue. On other roms you might end up with screwed up icons. So to me the easiest would be to diff the your smali and the 3 methods below and change only whats necessary ignoring line numbers.
9. Open \smali\com\android\systemui\statusbar\policy\StatusBarPolicy.smali
10. find and replace or merge.
Code:
.method private getEvdoLevel()I
.locals 7
.prologue
.line 2542
iget-object v6, p0, Lcom/android/systemui/statusbar/policy/StatusBarPolicy;->mSignalStrength:Landroid/telephony/SignalStrength;
invoke-virtual {v6}, Landroid/telephony/SignalStrength;->getEvdoDbm()I
move-result v0
.line 2543
.local v0, evdoDbm:I
iget-object v6, p0, Lcom/android/systemui/statusbar/policy/StatusBarPolicy;->mSignalStrength:Landroid/telephony/SignalStrength;
invoke-virtual {v6}, Landroid/telephony/SignalStrength;->getEvdoSnr()I
move-result v2
.line 2544
.local v2, evdoSnr:I
iget-object v6, p0, Lcom/android/systemui/statusbar/policy/StatusBarPolicy;->mSignalStrength:Landroid/telephony/SignalStrength;
invoke-virtual {v6}, Landroid/telephony/SignalStrength;->getEvdoEcio()I
move-result v1
.line 2545
.local v1, evdoEcio:I
const/4 v3, 0x0
.line 2546
.local v3, levelEvdoDbm:I
const/4 v5, 0x0
.line 2547
.local v5, levelEvdoSnr:I
const/4 v4, 0x0
.line 2572
.local v4, levelEvdoEcio:I
const/16 v6, -0x41
if-lt v0, v6, :cond_0
const/4 v3, 0x4
.line 2578
:goto_0
const/4 v6, 0x7
if-lt v2, v6, :cond_4
const/4 v5, 0x4
.line 2584
:goto_1
if-ge v3, v5, :cond_8
move v6, v3
:goto_2
return v6
.line 2573
:cond_0
const/16 v6, -0x4b
if-lt v0, v6, :cond_1
const/4 v3, 0x3
goto :goto_0
.line 2574
:cond_1
const/16 v6, -0x5a
if-lt v0, v6, :cond_2
const/4 v3, 0x2
goto :goto_0
.line 2575
:cond_2
const/16 v6, -0x69
if-lt v0, v6, :cond_3
const/4 v3, 0x1
goto :goto_0
.line 2576
:cond_3
const/4 v3, 0x0
goto :goto_0
.line 2579
:cond_4
const/4 v6, 0x5
if-lt v2, v6, :cond_5
const/4 v5, 0x3
goto :goto_1
.line 2580
:cond_5
const/4 v6, 0x3
if-lt v2, v6, :cond_6
const/4 v5, 0x2
goto :goto_1
.line 2581
:cond_6
const/4 v6, 0x1
if-lt v2, v6, :cond_7
const/4 v5, 0x1
goto :goto_1
.line 2582
:cond_7
const/4 v5, 0x0
goto :goto_1
:cond_8
move v6, v5
.line 2584
goto :goto_2
.end method
10. find and replace or merge
Code:
.method private final updateSignalStrength()V
.locals 12
.prologue
const/4 v10, 0x2
const/4 v9, 0x1
const/4 v8, 0x0
const-string v11, "phone_signal"
const-string v7, "StatusBarPolicy"
.line 2215
const/4 v2, -0x1
.line 2224
.local v2, iconLevel:I
const/4 v5, 0x0
new-instance v6, Ljava/lang/Integer;
invoke-direct {v6, v8}, Ljava/lang/Integer;-><init>(I)V
invoke-direct {p0, v5, v6}, Lcom/android/systemui/statusbar/policy/StatusBarPolicy;->getHtcServiceState(Ljava/lang/Boolean;Ljava/lang/Integer;)Landroid/telephony/ServiceState;
move-result-object v4
.line 2228
.local v4, ss:Landroid/telephony/ServiceState;
if-eqz v4, :cond_1
invoke-direct {p0, v4}, Lcom/android/systemui/statusbar/policy/StatusBarPolicy;->hasService(Landroid/telephony/ServiceState;)Z
move-result v5
if-nez v5, :cond_1
.line 2232
iget-object v5, p0, Lcom/android/systemui/statusbar/policy/StatusBarPolicy;->mContext:Landroid/content/Context;
invoke-virtual {v5}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;
move-result-object v5
const-string v6, "airplane_mode_on"
invoke-static {v5, v6, v8}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I
move-result v5
if-ne v5, v9, :cond_0
.line 2234
const v5, 0x7f02012d
iput v5, p0, Lcom/android/systemui/statusbar/policy/StatusBarPolicy;->mPhoneSignalIconId:I
.line 2248
:goto_0
iget-object v5, p0, Lcom/android/systemui/statusbar/policy/StatusBarPolicy;->mService:Landroid/app/StatusBarManager;
const-string v6, "phone_signal"
iget v7, p0, Lcom/android/systemui/statusbar/policy/StatusBarPolicy;->mPhoneSignalIconId:I
invoke-virtual {v5, v6, v7, v8}, Landroid/app/StatusBarManager;->setIcon(Ljava/lang/String;II)V
.line 2449
:goto_1
return-void
.line 2244
:cond_0
const v5, 0x7f02012e
iput v5, p0, Lcom/android/systemui/statusbar/policy/StatusBarPolicy;->mPhoneSignalIconId:I
goto :goto_0
.line 2252
:cond_1
sget-object v5, Ljava/lang/Boolean;->TRUE:Ljava/lang/Boolean;
new-instance v6, Ljava/lang/Integer;
invoke-direct {v6, v8}, Ljava/lang/Integer;-><init>(I)V
invoke-direct {p0, v5, v6}, Lcom/android/systemui/statusbar/policy/StatusBarPolicy;->getHtcServiceState(Ljava/lang/Boolean;Ljava/lang/Integer;)Landroid/telephony/ServiceState;
move-result-object v4
.line 2255
invoke-direct {p0}, Lcom/android/systemui/statusbar/policy/StatusBarPolicy;->isCdma()Z
move-result v5
if-nez v5, :cond_d
.line 2257
iget-object v5, p0, Lcom/android/systemui/statusbar/policy/StatusBarPolicy;->mPhone:Landroid/telephony/TelephonyManager;
invoke-virtual {v5}, Landroid/telephony/TelephonyManager;->getPhoneType()I
move-result v5
if-eq v5, v9, :cond_2
.line 2262
:cond_2
iget-object v5, p0, Lcom/android/systemui/statusbar/policy/StatusBarPolicy;->mSignalStrength:Landroid/telephony/SignalStrength;
invoke-virtual {v5}, Landroid/telephony/SignalStrength;->getGsmSignalStrength()I
move-result v0
.line 2310
.local v0, asu:I
const-string v5, "StatusBarPolicy"
new-instance v5, Ljava/lang/StringBuilder;
invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
const-string v6, "GSM asu:"
invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v5
invoke-virtual {v5, v0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-result-object v5
invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v5
invoke-static {v7, v5}, Landroid/util/Slog;->d(Ljava/lang/String;Ljava/lang/String;)I
if-le v0, v9, :cond_3
const/16 v5, 0x63
if-ne v0, v5, :cond_7
:cond_3
const/4 v2, 0x0
.line 2319
:goto_2
iget-object v5, p0, Lcom/android/systemui/statusbar/policy/StatusBarPolicy;->mPhone:Landroid/telephony/TelephonyManager;
invoke-virtual {v5}, Landroid/telephony/TelephonyManager;->isNetworkRoaming()Z
move-result v5
if-eqz v5, :cond_c
.line 2320
sget-object v5, Lcom/android/systemui/statusbar/policy/StatusBarPolicy;->sSignalImages_r:[[I
iget v6, p0, Lcom/android/systemui/statusbar/policy/StatusBarPolicy;->mInetCondition:I
aget-object v3, v5, v6
.line 2441
.end local v0 #asu:I
.local v3, iconList:[I
:cond_4
:goto_3
array-length v5, v3
if-gt v2, v5, :cond_5
if-gez v2, :cond_6
.line 2442
:cond_5
const/4 v2, 0x0
.line 2444
const-string v5, "StatusBarPolicy"
const-string v5, "OoO fix iconLevel index range !"
invoke-static {v7, v5}, Landroid/util/Slog;->d(Ljava/lang/String;Ljava/lang/String;)I
.line 2447
:cond_6
aget v5, v3, v2
iput v5, p0, Lcom/android/systemui/statusbar/policy/StatusBarPolicy;->mPhoneSignalIconId:I
.line 2448
iget-object v5, p0, Lcom/android/systemui/statusbar/policy/StatusBarPolicy;->mService:Landroid/app/StatusBarManager;
const-string v6, "phone_signal"
iget v7, p0, Lcom/android/systemui/statusbar/policy/StatusBarPolicy;->mPhoneSignalIconId:I
invoke-virtual {v5, v6, v7, v8}, Landroid/app/StatusBarManager;->setIcon(Ljava/lang/String;II)V
goto :goto_1
.line 2311
.end local v3 #iconList:[I
.restart local v0 #asu:I
:cond_7
const/16 v5, 0xc
if-lt v0, v5, :cond_8
const/4 v2, 0x4
goto :goto_2
.line 2312
:cond_8
const/16 v5, 0x8
if-lt v0, v5, :cond_9
const/4 v2, 0x3
goto :goto_2
.line 2313
:cond_9
const/4 v5, 0x4
if-lt v0, v5, :cond_a
const/4 v2, 0x2
goto :goto_2
.line 2314
:cond_a
if-lt v0, v10, :cond_b
const/4 v2, 0x1
goto :goto_2
.line 2315
:cond_b
const/4 v2, 0x1
goto :goto_2
.line 2322
:cond_c
sget-object v5, Lcom/android/systemui/statusbar/policy/StatusBarPolicy;->sSignalImages:[[I
iget v6, p0, Lcom/android/systemui/statusbar/policy/StatusBarPolicy;->mInetCondition:I
aget-object v3, v5, v6
.restart local v3 #iconList:[I
goto :goto_3
.line 2331
.end local v0 #asu:I
.end local v3 #iconList:[I
:cond_d
iget-object v5, p0, Lcom/android/systemui/statusbar/policy/StatusBarPolicy;->mPhone:Landroid/telephony/TelephonyManager;
invoke-virtual {v5}, Landroid/telephony/TelephonyManager;->getPhoneType()I
move-result v5
if-eq v5, v10, :cond_e
.line 2351
:cond_e
invoke-static {}, Lcom/android/systemui/statusbar/policy/HtcCdmaStatusBar;->getSignalStrengthIconList()[[I
move-result-object v5
iget v6, p0, Lcom/android/systemui/statusbar/policy/StatusBarPolicy;->mInetCondition:I
aget-object v3, v5, v6
.line 2352
.restart local v3 #iconList:[I
const/4 v1, 0x0
.line 2353
.local v1, iconIndex:I
if-eqz v4, :cond_f
.line 2354
invoke-virtual {v4}, Landroid/telephony/ServiceState;->getCdmaEriIconIndex()I
move-result v1
.line 2355
const-string v5, "StatusBarPolicy"
new-instance v5, Ljava/lang/StringBuilder;
invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
const-string v6, "iconIndex="
invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v5
invoke-virtual {v5, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-result-object v5
invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v5
invoke-static {v7, v5}, Landroid/util/Slog;->d(Ljava/lang/String;Ljava/lang/String;)I
.line 2358
:cond_f
packed-switch v1, :pswitch_data_0
.line 2369
iget-object v5, p0, Lcom/android/systemui/statusbar/policy/StatusBarPolicy;->mPhone:Landroid/telephony/TelephonyManager;
invoke-virtual {v5}, Landroid/telephony/TelephonyManager;->isNetworkRoaming()Z
move-result v5
if-eqz v5, :cond_10
.line 2371
invoke-static {}, Lcom/android/systemui/statusbar/policy/HtcCdmaStatusBar;->getSignalStrengthIconList_r()[[I
move-result-object v5
iget v6, p0, Lcom/android/systemui/statusbar/policy/StatusBarPolicy;->mInetCondition:I
aget-object v3, v5, v6
.line 2386
:goto_4
invoke-direct {p0}, Lcom/android/systemui/statusbar/policy/StatusBarPolicy;->getCdmaLevelDirectly()I
move-result v2
.line 2387
const-string v5, "StatusBarPolicy"
new-instance v5, Ljava/lang/StringBuilder;
invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
const-string v6, "iconLevel:"
invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v5
invoke-virtual {v5, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-result-object v5
invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v5
invoke-static {v7, v5}, Landroid/util/Slog;->d(Ljava/lang/String;Ljava/lang/String;)I
.line 2389
const/4 v5, -0x1
if-ne v2, v5, :cond_4
.line 2394
sget-object v5, Ljava/lang/Boolean;->FALSE:Ljava/lang/Boolean;
invoke-direct {p0, v5}, Lcom/android/systemui/statusbar/policy/StatusBarPolicy;->isLte(Ljava/lang/Boolean;)Z
move-result v5
if-eqz v5, :cond_11
.line 2395
invoke-direct {p0}, Lcom/android/systemui/statusbar/policy/StatusBarPolicy;->getLteLevel()I
move-result v2
.line 2396
const-string v5, "StatusBarPolicy"
new-instance v5, Ljava/lang/StringBuilder;
invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
const-string v6, "Use LTE level="
invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v5
invoke-virtual {v5, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-result-object v5
const-string v6, " to replace Cdma Level="
invoke-virtual {v5, v11}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v5
invoke-direct {p0}, Lcom/android/systemui/statusbar/policy/StatusBarPolicy;->getCdmaLevel()I
move-result v6
invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-result-object v5
invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v5
invoke-static {v7, v5}, Landroid/util/Slog;->d(Ljava/lang/String;Ljava/lang/String;)I
goto/16 :goto_3
.line 2360
:pswitch_0
invoke-static {}, Lcom/android/systemui/statusbar/policy/HtcCdmaStatusBar;->getSignalStrengthIconList_r()[[I
move-result-object v5
iget v6, p0, Lcom/android/systemui/statusbar/policy/StatusBarPolicy;->mInetCondition:I
aget-object v3, v5, v6
.line 2361
goto :goto_4
.line 2363
:pswitch_1
invoke-static {}, Lcom/android/systemui/statusbar/policy/HtcCdmaStatusBar;->getSignalStrengthIconList()[[I
move-result-object v5
iget v6, p0, Lcom/android/systemui/statusbar/policy/StatusBarPolicy;->mInetCondition:I
aget-object v3, v5, v6
.line 2364
goto :goto_4
.line 2366
:pswitch_2
invoke-static {}, Lcom/android/systemui/statusbar/policy/HtcCdmaStatusBar;->getSignalStrengthIconList_flash()[[I
move-result-object v5
iget v6, p0, Lcom/android/systemui/statusbar/policy/StatusBarPolicy;->mInetCondition:I
aget-object v3, v5, v6
.line 2367
goto :goto_4
.line 2375
:cond_10
invoke-static {}, Lcom/android/systemui/statusbar/policy/HtcCdmaStatusBar;->getSignalStrengthIconList()[[I
move-result-object v5
iget v6, p0, Lcom/android/systemui/statusbar/policy/StatusBarPolicy;->mInetCondition:I
aget-object v3, v5, v6
goto :goto_4
.line 2400
:cond_11
sget-object v5, Ljava/lang/Boolean;->FALSE:Ljava/lang/Boolean;
invoke-direct {p0, v5}, Lcom/android/systemui/statusbar/policy/StatusBarPolicy;->isEvdo(Ljava/lang/Boolean;)Z
move-result v5
if-eqz v5, :cond_12
.line 2401
invoke-direct {p0}, Lcom/android/systemui/statusbar/policy/StatusBarPolicy;->getEvdoLevel()I
move-result v2
.line 2402
const-string v5, "StatusBarPolicy"
new-instance v5, Ljava/lang/StringBuilder;
invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
const-string v6, "Use Evdo level="
invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v5
invoke-virtual {v5, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-result-object v5
const-string v6, " to replace Cdma Level="
invoke-virtual {v5, v11}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v5
invoke-direct {p0}, Lcom/android/systemui/statusbar/policy/StatusBarPolicy;->getCdmaLevel()I
move-result v6
invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-result-object v5
invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v5
invoke-static {v7, v5}, Landroid/util/Slog;->d(Ljava/lang/String;Ljava/lang/String;)I
goto/16 :goto_3
.line 2407
:cond_12
invoke-direct {p0}, Lcom/android/systemui/statusbar/policy/StatusBarPolicy;->getCdmaLevel()I
move-result v2
goto/16 :goto_3
.line 2358
nop
:pswitch_data_0
.packed-switch 0x0
:pswitch_0
:pswitch_1
:pswitch_2
.end packed-switch
.end method
11. Find and replace or merge
Code:
.method private getCdmaLevelDirectly()I
.locals 5
.prologue
const-string v4, "StatusBarPolicy"
const/4 v0, -0x1
.line 2453
.local v0, cdmaLevel:I
const/4 v1, 0x4
.line 2454
.local v1, maxCdmaLevel:I
const-string v2, "StatusBarPolicy"
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "cdmaLevel:"
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-result-object v2
const-string v3, ";max:"
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v2, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-static {v4, v2}, Landroid/util/Slog;->v(Ljava/lang/String;Ljava/lang/String;)I
.line 2457
if-le v0, v1, :cond_0
.line 2459
move v0, v1
.line 2460
const-string v2, "StatusBarPolicy"
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "cdmaLevel > maxCdmaLevel, assign cdmaLevel= "
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-static {v4, v2}, Landroid/util/Slog;->d(Ljava/lang/String;Ljava/lang/String;)I
.line 2462
:cond_0
if-gez v0, :cond_1
.line 2464
const/4 v0, -0x1
.line 2465
const-string v2, "StatusBarPolicy"
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "cdmaLevel < 0, cdmaLevel= "
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-static {v4, v2}, Landroid/util/Slog;->d(Ljava/lang/String;Ljava/lang/String;)I
.line 2469
:cond_1
return v0
.end method
Click to expand...
Click to collapse
I want to edit signal bars in nexus 5 running on lollipop. Can u plz help me how to do this?

[Q&A] [GUIDE / HOW-TO] Add screen off animations to KitKat 4.4 [CRT/FADE/NONE]

Q&A for [GUIDE / HOW-TO] Add screen off animations to KitKat 4.4 [CRT/FADE/NONE]
Some developers prefer that questions remain separate from their main development thread to help keep things organized. Placing your question within this thread will increase its chances of being answered by a member of the community or by the developer.
Before posting, please use the forum search and read through the discussion thread for [GUIDE / HOW-TO] Add screen off animations to KitKat 4.4 [CRT/FADE/NONE]. If you can't find an answer, post it here, being sure to give as much information as possible (firmware version, steps to reproduce, logcat if available) so that you can get help.
Thanks for understanding and for helping to keep XDA neat and tidy!
compilation error fix for smali
Thank you for this amazing tutorial.
Small fix for those who get the following error when compiling with smali.
Code:
services.out\com\android\server\power\DisplayPowerController.smali[8699,4] Invalid literal value: 16256. Low 16 bits must be zeroed out.
services.out\com\android\server\power\DisplayPowerController.smali[8722,4] Invalid literal value: 16256. Low 16 bits must be zeroed out.
Search for
Code:
.method private updatePowerState()V
And REPLACE THE ENTIRE METHOD WITH THE FOLLOWING
Code:
.method private updatePowerState()V
.locals 12
const/4 v7, 0x1
const/4 v8, 0x0
const/4 v0, 0x0
iget-boolean v4, p0, Lcom/android/server/power/DisplayPowerController;->mTwilightChanged:Z
const/4 v5, 0x0
iput-boolean v8, p0, Lcom/android/server/power/DisplayPowerController;->mTwilightChanged:Z
iget-object v9, p0, Lcom/android/server/power/DisplayPowerController;->mLock:Ljava/lang/Object;
monitor-enter v9
const/4 v6, 0x0
:try_start_0
iput-boolean v6, p0, Lcom/android/server/power/DisplayPowerController;->mPendingUpdatePowerStateLocked:Z
iget-object v6, p0, Lcom/android/server/power/DisplayPowerController;->mPendingRequestLocked:Lcom/android/server/power/DisplayPowerRequest;
if-nez v6, :cond_1
monitor-exit v9
:cond_0
:goto_0
return-void
:cond_1
iget-object v6, p0, Lcom/android/server/power/DisplayPowerController;->mPowerRequest:Lcom/android/server/power/DisplayPowerRequest;
if-nez v6, :cond_c
new-instance v6, Lcom/android/server/power/DisplayPowerRequest;
iget-object v10, p0, Lcom/android/server/power/DisplayPowerController;->mPendingRequestLocked:Lcom/android/server/power/DisplayPowerRequest;
invoke-direct {v6, v10}, Lcom/android/server/power/DisplayPowerRequest;-><init>(Lcom/android/server/power/DisplayPowerRequest;)V
iput-object v6, p0, Lcom/android/server/power/DisplayPowerController;->mPowerRequest:Lcom/android/server/power/DisplayPowerRequest;
iget-boolean v6, p0, Lcom/android/server/power/DisplayPowerController;->mPendingWaitForNegativeProximityLocked:Z
iput-boolean v6, p0, Lcom/android/server/power/DisplayPowerController;->mWaitingForNegativeProximity:Z
const/4 v6, 0x0
iput-boolean v6, p0, Lcom/android/server/power/DisplayPowerController;->mPendingWaitForNegativeProximityLocked:Z
iget-boolean v6, p0, Lcom/android/server/power/DisplayPowerController;->mPendingScreenOnEvenThoughProximityPositiveLocked:Z
iput-boolean v6, p0, Lcom/android/server/power/DisplayPowerController;->mScreenOnEvenThoughProximityPositive:Z
const/4 v6, 0x0
iput-boolean v6, p0, Lcom/android/server/power/DisplayPowerController;->mPendingScreenOnEvenThoughProximityPositiveLocked:Z
const/4 v6, 0x0
iput-boolean v6, p0, Lcom/android/server/power/DisplayPowerController;->mPendingRequestChangedLocked:Z
const/4 v0, 0x1
:cond_2
:goto_1
iget-boolean v6, p0, Lcom/android/server/power/DisplayPowerController;->mDisplayReadyLocked:Z
if-nez v6, :cond_10
move v1, v7
:goto_2
monitor-exit v9
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
if-eqz v0, :cond_3
invoke-direct {p0}, Lcom/android/server/power/DisplayPowerController;->initialize()V
:cond_3
iget-boolean v6, p0, Lcom/android/server/power/DisplayPowerController;->mWaitProximityToggled:Z
if-nez v6, :cond_4
iget v6, p0, Lcom/android/server/power/DisplayPowerController;->mProximity:I
if-ne v6, v7, :cond_4
iget-boolean v6, p0, Lcom/android/server/power/DisplayPowerController;->mScreenOnEvenThoughProximityPositive:Z
if-eqz v6, :cond_4
iput-boolean v7, p0, Lcom/android/server/power/DisplayPowerController;->mWaitProximityToggled:Z
:cond_4
iget-boolean v6, p0, Lcom/android/server/power/DisplayPowerController;->mWaitProximityToggled:Z
if-eqz v6, :cond_5
iget v6, p0, Lcom/android/server/power/DisplayPowerController;->mProximity:I
if-nez v6, :cond_5
iput-boolean v8, p0, Lcom/android/server/power/DisplayPowerController;->mScreenOnEvenThoughProximityPositive:Z
iput-boolean v8, p0, Lcom/android/server/power/DisplayPowerController;->mWaitProximityToggled:Z
:cond_5
iget-object v6, p0, Lcom/android/server/power/DisplayPowerController;->mProximitySensor:Landroid/hardware/Sensor;
if-eqz v6, :cond_18
iget-object v6, p0, Lcom/android/server/power/DisplayPowerController;->mPowerRequest:Lcom/android/server/power/DisplayPowerRequest;
iget-boolean v6, v6, Lcom/android/server/power/DisplayPowerRequest;->useProximitySensor:Z
if-eqz v6, :cond_15
iget-boolean v6, p0, Lcom/android/server/power/DisplayPowerController;->mScreenOffBecauseOfProximity:Z
if-nez v6, :cond_11
iget-object v6, p0, Lcom/android/server/power/DisplayPowerController;->mPowerRequest:Lcom/android/server/power/DisplayPowerRequest;
iget v6, v6, Lcom/android/server/power/DisplayPowerRequest;->screenState:I
invoke-static {v6}, Lcom/android/server/power/DisplayPowerController;->wantScreenOn(I)Z
move-result v6
if-nez v6, :cond_11
iget-object v6, p0, Lcom/android/server/power/DisplayPowerController;->mPowerRequest:Lcom/android/server/power/DisplayPowerRequest;
iget v6, v6, Lcom/android/server/power/DisplayPowerRequest;->lastGoToSleepReason:I
if-nez v6, :cond_11
invoke-direct {p0, v8}, Lcom/android/server/power/DisplayPowerController;->setProximitySensorEnabled(Z)V
invoke-direct {p0, v8}, Lcom/android/server/power/DisplayPowerController;->setScreenOn(Z)V
:cond_6
:goto_3
iget-object v6, p0, Lcom/android/server/power/DisplayPowerController;->mLightSensor:Landroid/hardware/Sensor;
if-eqz v6, :cond_7
iget-object v6, p0, Lcom/android/server/power/DisplayPowerController;->mTiltSensor:Landroid/hardware/Sensor;
if-eqz v6, :cond_7
iget-object v6, p0, Lcom/android/server/power/DisplayPowerController;->mPowerRequest:Lcom/android/server/power/DisplayPowerRequest;
iget-boolean v6, v6, Lcom/android/server/power/DisplayPowerRequest;->useAutoBrightness:Z
if-eqz v6, :cond_19
iget-object v6, p0, Lcom/android/server/power/DisplayPowerController;->mPowerRequest:Lcom/android/server/power/DisplayPowerRequest;
iget v6, v6, Lcom/android/server/power/DisplayPowerRequest;->screenState:I
invoke-static {v6}, Lcom/android/server/power/DisplayPowerController;->wantScreenOn(I)Z
move-result v6
if-eqz v6, :cond_19
move v6, v7
:goto_4
invoke-direct {p0, v6, v4}, Lcom/android/server/power/DisplayPowerController;->setLightSensorEnabled(ZZ)V
:cond_7
iget-object v6, p0, Lcom/android/server/power/DisplayPowerController;->mPowerRequest:Lcom/android/server/power/DisplayPowerRequest;
iget v6, v6, Lcom/android/server/power/DisplayPowerRequest;->screenState:I
invoke-static {v6}, Lcom/android/server/power/DisplayPowerController;->wantScreenOn(I)Z
move-result v6
if-eqz v6, :cond_1d
iget v6, p0, Lcom/android/server/power/DisplayPowerController;->mScreenAutoBrightness:I
if-ltz v6, :cond_1a
iget-boolean v6, p0, Lcom/android/server/power/DisplayPowerController;->mLightSensorEnabled:Z
if-eqz v6, :cond_1a
iget v3, p0, Lcom/android/server/power/DisplayPowerController;->mScreenAutoBrightness:I
iget-boolean v2, p0, Lcom/android/server/power/DisplayPowerController;->mUsingScreenAutoBrightness:Z
iput-boolean v7, p0, Lcom/android/server/power/DisplayPowerController;->mUsingScreenAutoBrightness:Z
:goto_5
iget-object v6, p0, Lcom/android/server/power/DisplayPowerController;->mPowerRequest:Lcom/android/server/power/DisplayPowerRequest;
iget v6, v6, Lcom/android/server/power/DisplayPowerRequest;->screenState:I
const/4 v9, 0x2
if-ne v6, v9, :cond_8
iput v3, p0, Lcom/android/server/power/DisplayPowerController;->mScreenBrightnessOnCover:I
:cond_8
invoke-direct {p0, v3}, Lcom/android/server/power/DisplayPowerController;->getFinalBrightness(I)I
move-result v3
iget-object v6, p0, Lcom/android/server/power/DisplayPowerController;->mPowerRequest:Lcom/android/server/power/DisplayPowerRequest;
iget v6, v6, Lcom/android/server/power/DisplayPowerRequest;->screenState:I
if-ne v6, v7, :cond_1b
add-int/lit8 v6, v3, -0xa
iget v9, p0, Lcom/android/server/power/DisplayPowerController;->mScreenBrightnessDimConfig:I
invoke-static {v6, v9}, Ljava/lang/Math;->min(II)I
move-result v3
const/4 v2, 0x0
:cond_9
:goto_6
invoke-direct {p0, v3}, Lcom/android/server/power/DisplayPowerController;->clampScreenBrightness(I)I
move-result v9
if-eqz v2, :cond_1c
const/16 v6, 0x1f4
:goto_7
invoke-direct {p0, v9, v6}, Lcom/android/server/power/DisplayPowerController;->animateScreenBrightness(II)V
:goto_8
iget-boolean v6, p0, Lcom/android/server/power/DisplayPowerController;->mScreenOffBecauseOfProximity:Z
if-nez v6, :cond_a
iget-object v6, p0, Lcom/android/server/power/DisplayPowerController;->mPowerRequest:Lcom/android/server/power/DisplayPowerRequest;
iget v6, v6, Lcom/android/server/power/DisplayPowerRequest;->screenState:I
invoke-static {v6}, Lcom/android/server/power/DisplayPowerController;->wantScreenOn(I)Z
move-result v6
if-eqz v6, :cond_23
iget-object v6, p0, Lcom/android/server/power/DisplayPowerController;->mElectronBeamOffAnimator:Landroid/animation/ObjectAnimator;
invoke-virtual {v6}, Landroid/animation/ObjectAnimator;->isStarted()Z
move-result v6
if-nez v6, :cond_a
invoke-direct {p0, v7}, Lcom/android/server/power/DisplayPowerController;->setScreenOn(Z)V
iget-object v6, p0, Lcom/android/server/power/DisplayPowerController;->mPowerRequest:Lcom/android/server/power/DisplayPowerRequest;
iget-boolean v6, v6, Lcom/android/server/power/DisplayPowerRequest;->blockScreenOn:Z
if-eqz v6, :cond_1e
iget-object v6, p0, Lcom/android/server/power/DisplayPowerController;->mPowerState:Lcom/android/server/power/DisplayPowerState;
invoke-virtual {v6}, Lcom/android/server/power/DisplayPowerState;->getElectronBeamLevel()F
move-result v6
const v10, 0x0
cmpl-float v6, v6, v10
if-nez v6, :cond_1e
invoke-direct {p0}, Lcom/android/server/power/DisplayPowerController;->blockScreenOn()V
:cond_a
:goto_9
if-eqz v1, :cond_0
iget-boolean v6, p0, Lcom/android/server/power/DisplayPowerController;->mScreenOnWasBlocked:Z
if-nez v6, :cond_0
iget-object v6, p0, Lcom/android/server/power/DisplayPowerController;->mElectronBeamOnAnimator:Landroid/animation/ObjectAnimator;
invoke-virtual {v6}, Landroid/animation/ObjectAnimator;->isStarted()Z
move-result v6
if-nez v6, :cond_0
iget-object v6, p0, Lcom/android/server/power/DisplayPowerController;->mElectronBeamOffAnimator:Landroid/animation/ObjectAnimator;
invoke-virtual {v6}, Landroid/animation/ObjectAnimator;->isStarted()Z
move-result v6
if-nez v6, :cond_0
iget-object v6, p0, Lcom/android/server/power/DisplayPowerController;->mPowerState:Lcom/android/server/power/DisplayPowerState;
iget-object v7, p0, Lcom/android/server/power/DisplayPowerController;->mCleanListener:Ljava/lang/Runnable;
invoke-virtual {v6, v7}, Lcom/android/server/power/DisplayPowerState;->waitUntilClean(Ljava/lang/Runnable;)Z
move-result v6
if-eqz v6, :cond_0
iget-object v7, p0, Lcom/android/server/power/DisplayPowerController;->mLock:Ljava/lang/Object;
monitor-enter v7
:try_start_1
iget-boolean v6, p0, Lcom/android/server/power/DisplayPowerController;->mPendingRequestChangedLocked:Z
if-nez v6, :cond_b
const/4 v6, 0x1
iput-boolean v6, p0, Lcom/android/server/power/DisplayPowerController;->mDisplayReadyLocked:Z
sget-boolean v6, Lcom/android/server/power/DisplayPowerController;->DEBUG:Z
if-eqz v6, :cond_b
const-string v6, "DisplayPowerController"
const-string v8, "Display ready!"
invoke-static {v6, v8}, Landroid/util/Slog;->d(Ljava/lang/String;Ljava/lang/String;)I
:cond_b
monitor-exit v7
:try_end_1
.catchall {:try_start_1 .. :try_end_1} :catchall_1
invoke-direct {p0}, Lcom/android/server/power/DisplayPowerController;->sendOnStateChangedWithWakelock()V
goto/16 :goto_0
:cond_c
:try_start_2
iget-boolean v6, p0, Lcom/android/server/power/DisplayPowerController;->mPendingRequestChangedLocked:Z
if-eqz v6, :cond_2
iget-object v6, p0, Lcom/android/server/power/DisplayPowerController;->mPowerRequest:Lcom/android/server/power/DisplayPowerRequest;
iget v6, v6, Lcom/android/server/power/DisplayPowerRequest;->screenAutoBrightnessAdjustment:F
iget-object v10, p0, Lcom/android/server/power/DisplayPowerController;->mPendingRequestLocked:Lcom/android/server/power/DisplayPowerRequest;
iget v10, v10, Lcom/android/server/power/DisplayPowerRequest;->screenAutoBrightnessAdjustment:F
cmpl-float v6, v6, v10
if-eqz v6, :cond_d
const/4 v4, 0x1
:cond_d
iget-object v6, p0, Lcom/android/server/power/DisplayPowerController;->mPowerRequest:Lcom/android/server/power/DisplayPowerRequest;
iget-boolean v6, v6, Lcom/android/server/power/DisplayPowerRequest;->autoBrightnessForEbookOnly:Z
iget-object v10, p0, Lcom/android/server/power/DisplayPowerController;->mPendingRequestLocked:Lcom/android/server/power/DisplayPowerRequest;
iget-boolean v10, v10, Lcom/android/server/power/DisplayPowerRequest;->autoBrightnessForEbookOnly:Z
if-eq v6, v10, :cond_e
const-string v6, "DisplayPowerController"
new-instance v10, Ljava/lang/StringBuilder;
invoke-direct {v10}, Ljava/lang/StringBuilder;-><init>()V
const-string v11, "[DAB] updatePowerState : autoBrightnessForEbookOnly : "
invoke-virtual {v10, v11}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v10
iget-object v11, p0, Lcom/android/server/power/DisplayPowerController;->mPendingRequestLocked:Lcom/android/server/power/DisplayPowerRequest;
iget-boolean v11, v11, Lcom/android/server/power/DisplayPowerRequest;->autoBrightnessForEbookOnly:Z
invoke-virtual {v10, v11}, Ljava/lang/StringBuilder;->append(Z)Ljava/lang/StringBuilder;
move-result-object v10
invoke-virtual {v10}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v10
invoke-static {v6, v10}, Landroid/util/Slog;->d(Ljava/lang/String;Ljava/lang/String;)I
const/4 v4, 0x1
:cond_e
iget-object v6, p0, Lcom/android/server/power/DisplayPowerController;->mPowerRequest:Lcom/android/server/power/DisplayPowerRequest;
iget v6, v6, Lcom/android/server/power/DisplayPowerRequest;->screenState:I
if-ne v6, v7, :cond_f
move v5, v7
:goto_a
iget-object v6, p0, Lcom/android/server/power/DisplayPowerController;->mPowerRequest:Lcom/android/server/power/DisplayPowerRequest;
iget-object v10, p0, Lcom/android/server/power/DisplayPowerController;->mPendingRequestLocked:Lcom/android/server/power/DisplayPowerRequest;
invoke-virtual {v6, v10}, Lcom/android/server/power/DisplayPowerRequest;->copyFrom(Lcom/android/server/power/DisplayPowerRequest;)V
iget-boolean v6, p0, Lcom/android/server/power/DisplayPowerController;->mWaitingForNegativeProximity:Z
iget-boolean v10, p0, Lcom/android/server/power/DisplayPowerController;->mPendingWaitForNegativeProximityLocked:Z
or-int/2addr v6, v10
iput-boolean v6, p0, Lcom/android/server/power/DisplayPowerController;->mWaitingForNegativeProximity:Z
const/4 v6, 0x0
iput-boolean v6, p0, Lcom/android/server/power/DisplayPowerController;->mPendingWaitForNegativeProximityLocked:Z
iget-boolean v6, p0, Lcom/android/server/power/DisplayPowerController;->mScreenOnEvenThoughProximityPositive:Z
iget-boolean v10, p0, Lcom/android/server/power/DisplayPowerController;->mPendingScreenOnEvenThoughProximityPositiveLocked:Z
or-int/2addr v6, v10
iput-boolean v6, p0, Lcom/android/server/power/DisplayPowerController;->mScreenOnEvenThoughProximityPositive:Z
const/4 v6, 0x0
iput-boolean v6, p0, Lcom/android/server/power/DisplayPowerController;->mPendingScreenOnEvenThoughProximityPositiveLocked:Z
const/4 v6, 0x0
iput-boolean v6, p0, Lcom/android/server/power/DisplayPowerController;->mPendingRequestChangedLocked:Z
const/4 v6, 0x0
iput-boolean v6, p0, Lcom/android/server/power/DisplayPowerController;->mDisplayReadyLocked:Z
goto/16 :goto_1
:catchall_0
move-exception v6
monitor-exit v9
:try_end_2
.catchall {:try_start_2 .. :try_end_2} :catchall_0
throw v6
:cond_f
move v5, v8
goto :goto_a
:cond_10
move v1, v8
goto/16 :goto_2
:cond_11
invoke-direct {p0, v7}, Lcom/android/server/power/DisplayPowerController;->setProximitySensorEnabled(Z)V
iget v6, p0, Lcom/android/server/power/DisplayPowerController;->mProximity:I
if-ne v6, v7, :cond_14
iget-boolean v6, p0, Lcom/android/server/power/DisplayPowerController;->mScreenOnEvenThoughProximityPositive:Z
if-nez v6, :cond_12
iput-boolean v7, p0, Lcom/android/server/power/DisplayPowerController;->mScreenOffBecauseOfProximity:Z
invoke-direct {p0, v8}, Lcom/android/server/power/DisplayPowerController;->setScreenOn(Z)V
invoke-direct {p0}, Lcom/android/server/power/DisplayPowerController;->sendOnProximityPositiveWithWakelock()V
goto/16 :goto_3
:cond_12
iget-boolean v6, p0, Lcom/android/server/power/DisplayPowerController;->mScreenOffBecauseOfProximity:Z
if-eqz v6, :cond_6
iget-boolean v6, p0, Lcom/android/server/power/DisplayPowerController;->mScreenOnEvenThoughProximityPositive:Z
if-eqz v6, :cond_6
iput-boolean v8, p0, Lcom/android/server/power/DisplayPowerController;->mScreenOffBecauseOfProximity:Z
invoke-direct {p0, v7}, Lcom/android/server/power/DisplayPowerController;->setScreenOn(Z)V
iget-boolean v6, p0, Lcom/android/server/power/DisplayPowerController;->mScreenOnEvenThoughProximityPositive:Z
if-eqz v6, :cond_13
const-string v6, "DisplayPowerController"
const-string v9, "[sensor] proximity : mScreenOnEvenThoughProximityPositive is true"
invoke-static {v6, v9}, Landroid/util/Slog;->d(Ljava/lang/String;Ljava/lang/String;)I
:cond_13
invoke-direct {p0}, Lcom/android/server/power/DisplayPowerController;->sendOnProximityNegativeWithWakelock()V
goto/16 :goto_3
:cond_14
iget v6, p0, Lcom/android/server/power/DisplayPowerController;->mProximity:I
if-nez v6, :cond_6
iget-boolean v6, p0, Lcom/android/server/power/DisplayPowerController;->mScreenOffBecauseOfProximity:Z
if-eqz v6, :cond_6
iput-boolean v8, p0, Lcom/android/server/power/DisplayPowerController;->mScreenOffBecauseOfProximity:Z
invoke-direct {p0, v7}, Lcom/android/server/power/DisplayPowerController;->setScreenOn(Z)V
invoke-direct {p0}, Lcom/android/server/power/DisplayPowerController;->sendOnProximityNegativeWithWakelock()V
goto/16 :goto_3
:cond_15
iget-boolean v6, p0, Lcom/android/server/power/DisplayPowerController;->mWaitingForNegativeProximity:Z
if-eqz v6, :cond_17
iput-boolean v8, p0, Lcom/android/server/power/DisplayPowerController;->mScreenOnEvenThoughProximityPositive:Z
iget v6, p0, Lcom/android/server/power/DisplayPowerController;->mProximity:I
if-ne v6, v7, :cond_16
iget-object v6, p0, Lcom/android/server/power/DisplayPowerController;->mPowerRequest:Lcom/android/server/power/DisplayPowerRequest;
iget v6, v6, Lcom/android/server/power/DisplayPowerRequest;->screenState:I
invoke-static {v6}, Lcom/android/server/power/DisplayPowerController;->wantScreenOn(I)Z
move-result v6
if-eqz v6, :cond_6
:cond_16
invoke-direct {p0, v8}, Lcom/android/server/power/DisplayPowerController;->setProximitySensorEnabled(Z)V
iput-boolean v8, p0, Lcom/android/server/power/DisplayPowerController;->mScreenOffBecauseOfProximity:Z
invoke-direct {p0, v7}, Lcom/android/server/power/DisplayPowerController;->setScreenOn(Z)V
invoke-direct {p0}, Lcom/android/server/power/DisplayPowerController;->sendOnProximityNegativeWithWakelock()V
iput-boolean v8, p0, Lcom/android/server/power/DisplayPowerController;->mWaitingForNegativeProximity:Z
goto/16 :goto_3
:cond_17
iput-boolean v8, p0, Lcom/android/server/power/DisplayPowerController;->mScreenOnEvenThoughProximityPositive:Z
invoke-direct {p0, v8}, Lcom/android/server/power/DisplayPowerController;->setProximitySensorEnabled(Z)V
iget-boolean v6, p0, Lcom/android/server/power/DisplayPowerController;->mScreenOffBecauseOfProximity:Z
if-eqz v6, :cond_6
iput-boolean v8, p0, Lcom/android/server/power/DisplayPowerController;->mScreenOffBecauseOfProximity:Z
invoke-direct {p0, v7}, Lcom/android/server/power/DisplayPowerController;->setScreenOn(Z)V
invoke-direct {p0}, Lcom/android/server/power/DisplayPowerController;->sendOnProximityNegativeWithWakelock()V
goto/16 :goto_3
:cond_18
iput-boolean v8, p0, Lcom/android/server/power/DisplayPowerController;->mWaitingForNegativeProximity:Z
goto/16 :goto_3
:cond_19
move v6, v8
goto/16 :goto_4
:cond_1a
iget-object v6, p0, Lcom/android/server/power/DisplayPowerController;->mPowerRequest:Lcom/android/server/power/DisplayPowerRequest;
iget v3, v6, Lcom/android/server/power/DisplayPowerRequest;->screenBrightness:I
const/4 v2, 0x0
iput-boolean v8, p0, Lcom/android/server/power/DisplayPowerController;->mUsingScreenAutoBrightness:Z
goto/16 :goto_5
:cond_1b
if-eqz v5, :cond_9
const/4 v2, 0x0
goto/16 :goto_6
:cond_1c
const/16 v6, 0x7d0
goto/16 :goto_7
:cond_1d
iput-boolean v8, p0, Lcom/android/server/power/DisplayPowerController;->mUsingScreenAutoBrightness:Z
goto/16 :goto_8
:cond_1e
invoke-direct {p0}, Lcom/android/server/power/DisplayPowerController;->unblockScreenOn()V
iget v10, p0, Lcom/android/server/power/DisplayPowerController;->mElectronBeamOn:I
if-nez v10, :cond_1f
iget-object v6, p0, Lcom/android/server/power/DisplayPowerController;->mPowerState:Lcom/android/server/power/DisplayPowerState;
const/high16 v7, 0x3f800000
invoke-virtual {v6, v7}, Lcom/android/server/power/DisplayPowerState;->setElectronBeamLevel(F)V
invoke-virtual {v6}, Lcom/android/server/power/DisplayPowerState;->dismissElectronBeam()V
goto/16 :goto_9
:cond_1f
iget-object v6, p0, Lcom/android/server/power/DisplayPowerController;->mElectronBeamOnAnimator:Landroid/animation/ObjectAnimator;
invoke-virtual {v6}, Landroid/animation/ObjectAnimator;->isStarted()Z
move-result v6
if-nez v6, :cond_a
iget-object v6, p0, Lcom/android/server/power/DisplayPowerController;->mPowerState:Lcom/android/server/power/DisplayPowerState;
invoke-virtual {v6}, Lcom/android/server/power/DisplayPowerState;->getElectronBeamLevel()F
move-result v6
const/high16 v7, 0x3f800000
cmpl-float v6, v6, v7
if-nez v6, :cond_20
iget-object v6, p0, Lcom/android/server/power/DisplayPowerController;->mPowerState:Lcom/android/server/power/DisplayPowerState;
invoke-virtual {v6}, Lcom/android/server/power/DisplayPowerState;->dismissElectronBeam()V
goto/16 :goto_9
:cond_20
const v6, 0x2
if-eq v6, v10, :cond_21
const v10, 0x0
:cond_21
iget-object v6, p0, Lcom/android/server/power/DisplayPowerController;->mPowerState:Lcom/android/server/power/DisplayPowerState;
invoke-virtual {v6, v10}, Lcom/android/server/power/DisplayPowerState;->prepareElectronBeam(I)Z
move-result v6
if-eqz v6, :cond_22
iget-object v6, p0, Lcom/android/server/power/DisplayPowerController;->mElectronBeamOnAnimator:Landroid/animation/ObjectAnimator;
invoke-virtual {v6}, Landroid/animation/ObjectAnimator;->start()V
goto/16 :goto_9
:cond_22
iget-object v6, p0, Lcom/android/server/power/DisplayPowerController;->mElectronBeamOnAnimator:Landroid/animation/ObjectAnimator;
invoke-virtual {v6}, Landroid/animation/ObjectAnimator;->end()V
goto/16 :goto_9
:cond_23
iget v10, p0, Lcom/android/server/power/DisplayPowerController;->mElectronBeamOff:I
if-nez v10, :cond_24
invoke-direct {p0, v8}, Lcom/android/server/power/DisplayPowerController;->setScreenOn(Z)V
iget-object v6, p0, Lcom/android/server/power/DisplayPowerController;->mPowerRequest:Lcom/android/server/power/DisplayPowerRequest;
iget-boolean v6, v6, Lcom/android/server/power/DisplayPowerRequest;->blockScreenOn:Z
if-nez v6, :cond_a
invoke-direct {p0}, Lcom/android/server/power/DisplayPowerController;->unblockScreenOn()V
goto/16 :goto_9
:cond_24
iget-object v6, p0, Lcom/android/server/power/DisplayPowerController;->mElectronBeamOnAnimator:Landroid/animation/ObjectAnimator;
invoke-virtual {v6}, Landroid/animation/ObjectAnimator;->isStarted()Z
move-result v6
if-nez v6, :cond_a
iget-object v6, p0, Lcom/android/server/power/DisplayPowerController;->mElectronBeamOffAnimator:Landroid/animation/ObjectAnimator;
invoke-virtual {v6}, Landroid/animation/ObjectAnimator;->isStarted()Z
move-result v6
if-nez v6, :cond_a
iget-object v6, p0, Lcom/android/server/power/DisplayPowerController;->mPowerState:Lcom/android/server/power/DisplayPowerState;
invoke-virtual {v6}, Lcom/android/server/power/DisplayPowerState;->getElectronBeamLevel()F
move-result v6
const v10, 0x0
cmpl-float v6, v6, v10
if-nez v6, :cond_25
invoke-direct {p0, v8}, Lcom/android/server/power/DisplayPowerController;->setScreenOn(Z)V
goto/16 :goto_9
:cond_25
iget-object v6, p0, Lcom/android/server/power/DisplayPowerController;->mPowerState:Lcom/android/server/power/DisplayPowerState;
iget v10, p0, Lcom/android/server/power/DisplayPowerController;->mElectronBeamOff:I
invoke-virtual {v6, v10}, Lcom/android/server/power/DisplayPowerState;->prepareElectronBeam(I)Z
move-result v6
if-eqz v6, :cond_26
iget-object v6, p0, Lcom/android/server/power/DisplayPowerController;->mPowerState:Lcom/android/server/power/DisplayPowerState;
invoke-virtual {v6}, Lcom/android/server/power/DisplayPowerState;->isScreenOn()Z
move-result v6
if-eqz v6, :cond_26
iget-object v6, p0, Lcom/android/server/power/DisplayPowerController;->mElectronBeamOffAnimator:Landroid/animation/ObjectAnimator;
invoke-virtual {v6}, Landroid/animation/ObjectAnimator;->start()V
goto/16 :goto_9
:cond_26
iget-object v6, p0, Lcom/android/server/power/DisplayPowerController;->mElectronBeamOffAnimator:Landroid/animation/ObjectAnimator;
invoke-virtual {v6}, Landroid/animation/ObjectAnimator;->end()V
goto/16 :goto_9
:catchall_1
move-exception v6
:try_start_3
monitor-exit v7
:try_end_3
.catchall {:try_start_3 .. :try_end_3} :catchall_1
throw v6
.end method

[TUTORIAL][LOLLIPOP] Remove Full Screen Album Art from lockscreen when playing Music

Introduction
Here's an easy way to remove the Full Screen Album Art who is displayed on Lockscreen when you are listening Music.
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
What you need
Latest APKtool or anything able to decompile an apk.
Know how to decompile, rebuild and sign an apk.
Tutorial
1) Decompile SystemUI.apk
2) Go in smali/com/android/systemui/statusbar/phone/PhoneStatusBar.smali
3) Look for this method:
Code:
.method public updateMediaMetaData(Z)V
4) This is inside this method that the System choose the album ART and display it if Music is played. We will edit two lines and remove a few others.
Here's the modded code:
Code:
.method public updateMediaMetaData(Z)V
.locals 9
.param p1, "metaDataChanged" # Z
.prologue
const/4 v3, 0x1
const/high16 v8, 0x3f800000 # 1.0f
const/4 v7, 0x0
const/4 v4, 0x0
.line 2279
iget-object v5, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mBackdrop:Lcom/android/systemui/statusbar/BackDropView;
if-nez v5, :cond_1
.line 2382
:cond_0
:goto_0
return-void
.line 2288
:cond_1
const/4 v0, 0x0
.line 2292
.local v0, "artworkBitmap":Landroid/graphics/Bitmap;
iget-object v5, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mStatusBarKeyguardViewManager:Lcom/android/systemui/statusbar/phone/StatusBarKeyguardViewManager;
[COLOR="Lime"]if-eqz v5, :cond_3[/COLOR]
iget-object v5, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mStatusBarKeyguardViewManager:Lcom/android/systemui/statusbar/phone/StatusBarKeyguardViewManager;
invoke-virtual {v5}, Lcom/android/systemui/statusbar/phone/StatusBarKeyguardViewManager;->isShowing()Z
move-result v5
[COLOR="lime"]if-eqz v5, :cond_3[/COLOR]
.line 2293
iget-object v5, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mLockscreenWallpaperController:Lcom/sonymobile/systemui/lockscreen/wallpaper/LockscreenWallpaperController;
invoke-virtual {v5}, Lcom/sonymobile/systemui/lockscreen/wallpaper/LockscreenWallpaperController;->getLockscreenWallpaper()Landroid/graphics/Bitmap;
move-result-object v0
[COLOR="Red"].line 2295
:cond_2
iget-object v5, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mMediaMetadata:Landroid/media/MediaMetadata;
if-eqz v5, :cond_3
.line 2296
iget-object v5, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mMediaMetadata:Landroid/media/MediaMetadata;
const-string v6, "android.media.metadata.ART"
invoke-virtual {v5, v6}, Landroid/media/MediaMetadata;->getBitmap(Ljava/lang/String;)Landroid/graphics/Bitmap;
move-result-object v0
.line 2297
if-nez v0, :cond_3
.line 2298
iget-object v5, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mMediaMetadata:Landroid/media/MediaMetadata;
const-string v6, "android.media.metadata.ALBUM_ART"
invoke-virtual {v5, v6}, Landroid/media/MediaMetadata;->getBitmap(Ljava/lang/String;)Landroid/graphics/Bitmap;
move-result-object v0[/COLOR]
.line 2303
:cond_3
In the above code, you have:
In Green, the edited lines cond_3 instead of original :cond_2).
In Red, the lines to be deleted.
5) Save file, rebuild and sign (move Meta Folder and Manifest from original apk to new).
This method works on any Xperia or phone who's running on Lollipop
Thank you friend for this tut
Solved my doubt
You did it awesome
Nice tut bro @niaboc79
thanks for this, great job
Awesome mod..since I'm a noob and zero knowledge in modding stuff..if possible can create a flashable zip?
anakdayak said:
Awesome mod..since I'm a noob and zero knowledge in modding stuff..if possible can create a flashable zip?
Click to expand...
Click to collapse
no
The main goal of this thread is allowing users to do the job.
Why not learn to do it by yourself? Use google and this forum
niaboc79 said:
no
The main goal of this thread is allowing users to do the job.
Why not learn to do it by yourself? Use google and this forum
Click to expand...
Click to collapse
So we should thank you for trying to make people pro android users ^^ hope to see more guides from you soon LIKE A ONE for porting
Thanks again sir
atleast we should be happy dey teaching us not just giving us....
thanks @niaboc79
shehabskull said:
So we should thank you for trying to make people pro android users ^^ hope to see more guides from you soon LIKE A ONE for porting
Thanks again sir
Click to expand...
Click to collapse
Porting apps or mods need a lot of time but is always done the same way. Find what's wrong and fix it.
Sometimes it take 5 minutes, sometimes a month
niaboc79 said:
Porting apps or mods need a lot of time but is always done the same way. Find what's wrong and fix it.
Sometimes it take 5 minutes, sometimes a month
Click to expand...
Click to collapse
I can truly obey this word friend
It's he'll to mod or to find a logic
does this mod still allow me to change the lockscreen wallpaper?
Sent from my D5803
hamsup1o said:
does this mod still allow me to change the lockscreen wallpaper?
Sent from my D5803
Click to expand...
Click to collapse
Yes
Dear @niaboc79 it's possible for you to edit my systemUI? I'm without a computer for several days and I can't wait to get this mod on my Z1. Can you be so kind and do it, please.
https://www.dropbox.com/s/eahdjmwsidbt13x/SystemUI.apk?dl=0
Thanks in advance.
Read my previous replies
Hello guys,
I'm trying to do this on my Xperia SP running the latest CM12.1. The code isn't exactly the same, but it's close enough for me to adapt.
The problem is the phone is stuck in bootloop when I put the modded SystemUI.apk in place. Any ideas on why is that happening or even how can I find out what could be causing this?
The original method was:
Code:
.method public updateMediaMetaData(Z)V
.locals 11
.param p1, "metaDataChanged" # Z
.prologue
const/high16 v10, 0x3f800000 # 1.0f
const/4 v9, 0x0
const/4 v5, 0x1
const/4 v6, 0x0
.line 2339
iget-object v7, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mBackdrop:Lcom/android/systemui/statusbar/BackDropView;
if-nez v7, :cond_1
.line 2456
:cond_0
:goto_0
return-void
.line 2348
:cond_1
const/4 v0, 0x0
.line 2351
.local v0, "backdropBitmap":Landroid/graphics/Bitmap;
iget-object v7, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mMediaMetadata:Landroid/media/MediaMetadata;
if-eqz v7, :cond_2
.line 2352
iget-object v7, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mMediaMetadata:Landroid/media/MediaMetadata;
const-string v8, "android.media.metadata.ART"
invoke-virtual {v7, v8}, Landroid/media/MediaMetadata;->getBitmap(Ljava/lang/String;)Landroid/graphics/Bitmap;
move-result-object v0
.line 2353
if-nez v0, :cond_2
.line 2354
iget-object v7, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mMediaMetadata:Landroid/media/MediaMetadata;
const-string v8, "android.media.metadata.ALBUM_ART"
invoke-virtual {v7, v8}, Landroid/media/MediaMetadata;->getBitmap(Ljava/lang/String;)Landroid/graphics/Bitmap;
move-result-object v0
.line 2359
:cond_2
iget v7, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mState:I
if-eqz v7, :cond_7
move v3, v5
.line 2360
.local v3, "keyguardVisible":Z
:goto_1
iget-boolean v7, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mVisualizerEnabled:Z
if-eqz v7, :cond_8
if-eqz v3, :cond_8
iget-object v7, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mMediaController:Landroid/media/session/MediaController;
if-eqz v7, :cond_8
move v4, v5
.line 2363
.local v4, "visualizerVisible":Z
:goto_2
if-nez v0, :cond_3
iget-object v7, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mMediaMetadata:Landroid/media/MediaMetadata;
if-nez v7, :cond_3
.line 2364
iget-object v0, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mKeyguardWallpaper:Landroid/graphics/Bitmap;
.line 2367
:cond_3
if-eqz v4, :cond_4
.line 2368
iget-object v7, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mBackdrop:Lcom/android/systemui/statusbar/BackDropView;
invoke-virtual {v7, v0}, Lcom/android/systemui/statusbar/BackDropView;->setBitmap(Landroid/graphics/Bitmap;)V
.line 2371
:cond_4
if-eqz v0, :cond_9
move v2, v5
.line 2372
.local v2, "hasBackdrop":Z
:goto_3
iput-boolean v2, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mKeyguardShowingMedia:Z
.line 2373
iget-object v5, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mStatusBarWindowManager:Lcom/android/systemui/statusbar/phone/StatusBarWindowManager;
if-eqz v5, :cond_5
.line 2374
iget-object v5, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mStatusBarWindowManager:Lcom/android/systemui/statusbar/phone/StatusBarWindowManager;
iget-boolean v7, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mKeyguardShowingMedia:Z
invoke-virtual {v5, v7}, Lcom/android/systemui/statusbar/phone/StatusBarWindowManager;->setShowingMedia(Z)V
.line 2377
:cond_5
if-nez v2, :cond_a
.line 2427
:cond_6
iget-object v5, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mBackdrop:Lcom/android/systemui/statusbar/BackDropView;
invoke-virtual {v5}, Lcom/android/systemui/statusbar/BackDropView;->getVisibility()I
move-result v5
const/16 v6, 0x8
if-eq v5, v6, :cond_0
.line 2431
iget-object v5, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mBackdrop:Lcom/android/systemui/statusbar/BackDropView;
invoke-virtual {v5}, Lcom/android/systemui/statusbar/BackDropView;->animate()Landroid/view/ViewPropertyAnimator;
move-result-object v5
invoke-virtual {v5, v9}, Landroid/view/ViewPropertyAnimator;->alpha(F)Landroid/view/ViewPropertyAnimator;
move-result-object v5
iget-object v6, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mBackdropInterpolator:Landroid/view/animation/Interpolator;
invoke-virtual {v5, v6}, Landroid/view/ViewPropertyAnimator;->setInterpolator(Landroid/animation/TimeInterpolator;)Landroid/view/ViewPropertyAnimator;
move-result-object v5
const-wide/16 v6, 0x12c
invoke-virtual {v5, v6, v7}, Landroid/view/ViewPropertyAnimator;->setDuration(J)Landroid/view/ViewPropertyAnimator;
move-result-object v5
const-wide/16 v6, 0x0
invoke-virtual {v5, v6, v7}, Landroid/view/ViewPropertyAnimator;->setStartDelay(J)Landroid/view/ViewPropertyAnimator;
move-result-object v5
new-instance v6, Lcom/android/systemui/statusbar/phone/PhoneStatusBar$30;
invoke-direct {v6, p0}, Lcom/android/systemui/statusbar/phone/PhoneStatusBar$30;-><init>(Lcom/android/systemui/statusbar/phone/PhoneStatusBar;)V
invoke-virtual {v5, v6}, Landroid/view/ViewPropertyAnimator;->withEndAction(Ljava/lang/Runnable;)Landroid/view/ViewPropertyAnimator;
.line 2445
iget-boolean v5, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mKeyguardFadingAway:Z
if-eqz v5, :cond_0
.line 2446
iget-object v5, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mBackdrop:Lcom/android/systemui/statusbar/BackDropView;
invoke-virtual {v5}, Lcom/android/systemui/statusbar/BackDropView;->animate()Landroid/view/ViewPropertyAnimator;
move-result-object v5
iget-wide v6, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mKeyguardFadingAwayDuration:J
const-wide/16 v8, 0x2
div-long/2addr v6, v8
invoke-virtual {v5, v6, v7}, Landroid/view/ViewPropertyAnimator;->setDuration(J)Landroid/view/ViewPropertyAnimator;
move-result-object v5
iget-wide v6, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mKeyguardFadingAwayDelay:J
invoke-virtual {v5, v6, v7}, Landroid/view/ViewPropertyAnimator;->setStartDelay(J)Landroid/view/ViewPropertyAnimator;
move-result-object v5
iget-object v6, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mLinearInterpolator:Landroid/view/animation/Interpolator;
invoke-virtual {v5, v6}, Landroid/view/ViewPropertyAnimator;->setInterpolator(Landroid/animation/TimeInterpolator;)Landroid/view/ViewPropertyAnimator;
move-result-object v5
invoke-virtual {v5}, Landroid/view/ViewPropertyAnimator;->start()V
goto/16 :goto_0
.end local v2 # "hasBackdrop":Z
.end local v3 # "keyguardVisible":Z
.end local v4 # "visualizerVisible":Z
:cond_7
move v3, v6
.line 2359
goto :goto_1
.restart local v3 # "keyguardVisible":Z
:cond_8
move v4, v6
.line 2360
goto :goto_2
.restart local v4 # "visualizerVisible":Z
:cond_9
move v2, v6
.line 2371
goto :goto_3
.line 2377
.restart local v2 # "hasBackdrop":Z
:cond_a
if-eqz v3, :cond_6
.line 2379
iget-object v5, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mBackdrop:Lcom/android/systemui/statusbar/BackDropView;
invoke-virtual {v5}, Lcom/android/systemui/statusbar/BackDropView;->getVisibility()I
move-result v5
if-eqz v5, :cond_b
.line 2380
iget-object v5, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mBackdrop:Lcom/android/systemui/statusbar/BackDropView;
invoke-virtual {v5, v6}, Lcom/android/systemui/statusbar/BackDropView;->setVisibility(I)V
.line 2381
iget-object v5, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mBackdrop:Lcom/android/systemui/statusbar/BackDropView;
invoke-virtual {v5}, Lcom/android/systemui/statusbar/BackDropView;->animate()Landroid/view/ViewPropertyAnimator;
move-result-object v5
invoke-virtual {v5, v10}, Landroid/view/ViewPropertyAnimator;->alpha(F)Landroid/view/ViewPropertyAnimator;
.line 2382
const/4 p1, 0x1
.line 2387
:cond_b
if-eqz p1, :cond_0
.line 2388
iget-object v5, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mBackdropBack:Landroid/widget/ImageView;
invoke-virtual {v5}, Landroid/widget/ImageView;->getDrawable()Landroid/graphics/drawable/Drawable;
move-result-object v5
if-eqz v5, :cond_e
.line 2389
iget-object v5, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mBackdropBack:Landroid/widget/ImageView;
invoke-virtual {v5}, Landroid/widget/ImageView;->getDrawable()Landroid/graphics/drawable/Drawable;
move-result-object v1
.line 2390
.local v1, "drawable":Landroid/graphics/drawable/Drawable;
iget-object v5, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mBackdropFront:Landroid/widget/ImageView;
invoke-virtual {v5, v1}, Landroid/widget/ImageView;->setImageDrawable(Landroid/graphics/drawable/Drawable;)V
.line 2391
iget-boolean v5, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mScrimSrcModeEnabled:Z
if-eqz v5, :cond_c
.line 2392
iget-object v5, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mBackdropFront:Landroid/widget/ImageView;
invoke-virtual {v5}, Landroid/widget/ImageView;->getDrawable()Landroid/graphics/drawable/Drawable;
move-result-object v5
invoke-virtual {v5}, Landroid/graphics/drawable/Drawable;->mutate()Landroid/graphics/drawable/Drawable;
move-result-object v5
iget-object v7, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mSrcOverXferMode:Landroid/graphics/PorterDuffXfermode;
invoke-virtual {v5, v7}, Landroid/graphics/drawable/Drawable;->setXfermode(Landroid/graphics/Xfermode;)V
.line 2394
:cond_c
iget-object v5, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mBackdropFront:Landroid/widget/ImageView;
invoke-virtual {v5, v10}, Landroid/widget/ImageView;->setAlpha(F)V
.line 2395
iget-object v5, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mBackdropFront:Landroid/widget/ImageView;
invoke-virtual {v5, v6}, Landroid/widget/ImageView;->setVisibility(I)V
.line 2406
.end local v1 # "drawable":Landroid/graphics/drawable/Drawable;
:goto_4
iget-object v5, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mBackdropBack:Landroid/widget/ImageView;
invoke-virtual {v5, v0}, Landroid/widget/ImageView;->setImageBitmap(Landroid/graphics/Bitmap;)V
.line 2408
iget-boolean v5, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mScrimSrcModeEnabled:Z
if-eqz v5, :cond_d
.line 2409
iget-object v5, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mBackdropBack:Landroid/widget/ImageView;
invoke-virtual {v5}, Landroid/widget/ImageView;->getDrawable()Landroid/graphics/drawable/Drawable;
move-result-object v5
invoke-virtual {v5}, Landroid/graphics/drawable/Drawable;->mutate()Landroid/graphics/drawable/Drawable;
move-result-object v5
iget-object v6, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mSrcXferMode:Landroid/graphics/PorterDuffXfermode;
invoke-virtual {v5, v6}, Landroid/graphics/drawable/Drawable;->setXfermode(Landroid/graphics/Xfermode;)V
.line 2412
:cond_d
iget-object v5, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mBackdropFront:Landroid/widget/ImageView;
invoke-virtual {v5}, Landroid/widget/ImageView;->getVisibility()I
move-result v5
if-nez v5, :cond_0
.line 2419
iget-object v5, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mBackdropFront:Landroid/widget/ImageView;
invoke-virtual {v5}, Landroid/widget/ImageView;->animate()Landroid/view/ViewPropertyAnimator;
move-result-object v5
const-wide/16 v6, 0xfa
invoke-virtual {v5, v6, v7}, Landroid/view/ViewPropertyAnimator;->setDuration(J)Landroid/view/ViewPropertyAnimator;
move-result-object v5
invoke-virtual {v5, v9}, Landroid/view/ViewPropertyAnimator;->alpha(F)Landroid/view/ViewPropertyAnimator;
move-result-object v5
iget-object v6, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mHideBackdropFront:Ljava/lang/Runnable;
invoke-virtual {v5, v6}, Landroid/view/ViewPropertyAnimator;->withEndAction(Ljava/lang/Runnable;)Landroid/view/ViewPropertyAnimator;
goto/16 :goto_0
.line 2397
:cond_e
iget-object v5, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mBackdropFront:Landroid/widget/ImageView;
const/4 v6, 0x4
invoke-virtual {v5, v6}, Landroid/widget/ImageView;->setVisibility(I)V
goto :goto_4
.end method
And I changed it to this:
Code:
.method public updateMediaMetaData(Z)V
.locals 11
.param p1, "metaDataChanged" # Z
.prologue
const/high16 v10, 0x3f800000 # 1.0f
const/4 v9, 0x0
const/4 v5, 0x1
const/4 v6, 0x0
.line 2339
iget-object v7, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mBackdrop:Lcom/android/systemui/statusbar/BackDropView;
[COLOR="DarkGreen"][B][I] if-nez v7, :cond_2[/I][/B][/COLOR]
.line 2456
:cond_0
:goto_0
return-void
[COLOR="Red"][I][B]removed ":cond_1" from here[/B][/I][/COLOR]
.line 2359
:cond_2
iget v7, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mState:I
if-eqz v7, :cond_7
move v3, v5
.line 2360
.local v3, "keyguardVisible":Z
:goto_1
iget-boolean v7, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mVisualizerEnabled:Z
if-eqz v7, :cond_8
if-eqz v3, :cond_8
iget-object v7, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mMediaController:Landroid/media/session/MediaController;
if-eqz v7, :cond_8
move v4, v5
.line 2363
.local v4, "visualizerVisible":Z
:goto_2
if-nez v0, :cond_3
iget-object v7, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mMediaMetadata:Landroid/media/MediaMetadata;
if-nez v7, :cond_3
.line 2364
iget-object v0, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mKeyguardWallpaper:Landroid/graphics/Bitmap;
.line 2367
:cond_3
if-eqz v4, :cond_4
.line 2368
iget-object v7, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mBackdrop:Lcom/android/systemui/statusbar/BackDropView;
invoke-virtual {v7, v0}, Lcom/android/systemui/statusbar/BackDropView;->setBitmap(Landroid/graphics/Bitmap;)V
.line 2371
:cond_4
if-eqz v0, :cond_9
move v2, v5
.line 2372
.local v2, "hasBackdrop":Z
:goto_3
iput-boolean v2, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mKeyguardShowingMedia:Z
.line 2373
iget-object v5, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mStatusBarWindowManager:Lcom/android/systemui/statusbar/phone/StatusBarWindowManager;
if-eqz v5, :cond_5
.line 2374
iget-object v5, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mStatusBarWindowManager:Lcom/android/systemui/statusbar/phone/StatusBarWindowManager;
iget-boolean v7, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mKeyguardShowingMedia:Z
invoke-virtual {v5, v7}, Lcom/android/systemui/statusbar/phone/StatusBarWindowManager;->setShowingMedia(Z)V
.line 2377
:cond_5
if-nez v2, :cond_a
.line 2427
:cond_6
iget-object v5, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mBackdrop:Lcom/android/systemui/statusbar/BackDropView;
invoke-virtual {v5}, Lcom/android/systemui/statusbar/BackDropView;->getVisibility()I
move-result v5
const/16 v6, 0x8
if-eq v5, v6, :cond_0
.line 2431
iget-object v5, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mBackdrop:Lcom/android/systemui/statusbar/BackDropView;
invoke-virtual {v5}, Lcom/android/systemui/statusbar/BackDropView;->animate()Landroid/view/ViewPropertyAnimator;
move-result-object v5
invoke-virtual {v5, v9}, Landroid/view/ViewPropertyAnimator;->alpha(F)Landroid/view/ViewPropertyAnimator;
move-result-object v5
iget-object v6, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mBackdropInterpolator:Landroid/view/animation/Interpolator;
invoke-virtual {v5, v6}, Landroid/view/ViewPropertyAnimator;->setInterpolator(Landroid/animation/TimeInterpolator;)Landroid/view/ViewPropertyAnimator;
move-result-object v5
const-wide/16 v6, 0x12c
invoke-virtual {v5, v6, v7}, Landroid/view/ViewPropertyAnimator;->setDuration(J)Landroid/view/ViewPropertyAnimator;
move-result-object v5
const-wide/16 v6, 0x0
invoke-virtual {v5, v6, v7}, Landroid/view/ViewPropertyAnimator;->setStartDelay(J)Landroid/view/ViewPropertyAnimator;
move-result-object v5
new-instance v6, Lcom/android/systemui/statusbar/phone/PhoneStatusBar$30;
invoke-direct {v6, p0}, Lcom/android/systemui/statusbar/phone/PhoneStatusBar$30;-><init>(Lcom/android/systemui/statusbar/phone/PhoneStatusBar;)V
invoke-virtual {v5, v6}, Landroid/view/ViewPropertyAnimator;->withEndAction(Ljava/lang/Runnable;)Landroid/view/ViewPropertyAnimator;
.line 2445
iget-boolean v5, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mKeyguardFadingAway:Z
if-eqz v5, :cond_0
.line 2446
iget-object v5, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mBackdrop:Lcom/android/systemui/statusbar/BackDropView;
invoke-virtual {v5}, Lcom/android/systemui/statusbar/BackDropView;->animate()Landroid/view/ViewPropertyAnimator;
move-result-object v5
iget-wide v6, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mKeyguardFadingAwayDuration:J
const-wide/16 v8, 0x2
div-long/2addr v6, v8
invoke-virtual {v5, v6, v7}, Landroid/view/ViewPropertyAnimator;->setDuration(J)Landroid/view/ViewPropertyAnimator;
move-result-object v5
iget-wide v6, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mKeyguardFadingAwayDelay:J
invoke-virtual {v5, v6, v7}, Landroid/view/ViewPropertyAnimator;->setStartDelay(J)Landroid/view/ViewPropertyAnimator;
move-result-object v5
iget-object v6, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mLinearInterpolator:Landroid/view/animation/Interpolator;
invoke-virtual {v5, v6}, Landroid/view/ViewPropertyAnimator;->setInterpolator(Landroid/animation/TimeInterpolator;)Landroid/view/ViewPropertyAnimator;
move-result-object v5
invoke-virtual {v5}, Landroid/view/ViewPropertyAnimator;->start()V
goto/16 :goto_0
.end local v2 # "hasBackdrop":Z
.end local v3 # "keyguardVisible":Z
.end local v4 # "visualizerVisible":Z
:cond_7
move v3, v6
.line 2359
goto :goto_1
.restart local v3 # "keyguardVisible":Z
:cond_8
move v4, v6
.line 2360
goto :goto_2
.restart local v4 # "visualizerVisible":Z
:cond_9
move v2, v6
.line 2371
goto :goto_3
.line 2377
.restart local v2 # "hasBackdrop":Z
:cond_a
if-eqz v3, :cond_6
.line 2379
iget-object v5, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mBackdrop:Lcom/android/systemui/statusbar/BackDropView;
invoke-virtual {v5}, Lcom/android/systemui/statusbar/BackDropView;->getVisibility()I
move-result v5
if-eqz v5, :cond_b
.line 2380
iget-object v5, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mBackdrop:Lcom/android/systemui/statusbar/BackDropView;
invoke-virtual {v5, v6}, Lcom/android/systemui/statusbar/BackDropView;->setVisibility(I)V
.line 2381
iget-object v5, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mBackdrop:Lcom/android/systemui/statusbar/BackDropView;
invoke-virtual {v5}, Lcom/android/systemui/statusbar/BackDropView;->animate()Landroid/view/ViewPropertyAnimator;
move-result-object v5
invoke-virtual {v5, v10}, Landroid/view/ViewPropertyAnimator;->alpha(F)Landroid/view/ViewPropertyAnimator;
.line 2382
const/4 p1, 0x1
.line 2387
:cond_b
if-eqz p1, :cond_0
.line 2388
iget-object v5, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mBackdropBack:Landroid/widget/ImageView;
invoke-virtual {v5}, Landroid/widget/ImageView;->getDrawable()Landroid/graphics/drawable/Drawable;
move-result-object v5
if-eqz v5, :cond_e
.line 2389
iget-object v5, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mBackdropBack:Landroid/widget/ImageView;
invoke-virtual {v5}, Landroid/widget/ImageView;->getDrawable()Landroid/graphics/drawable/Drawable;
move-result-object v1
.line 2390
.local v1, "drawable":Landroid/graphics/drawable/Drawable;
iget-object v5, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mBackdropFront:Landroid/widget/ImageView;
invoke-virtual {v5, v1}, Landroid/widget/ImageView;->setImageDrawable(Landroid/graphics/drawable/Drawable;)V
.line 2391
iget-boolean v5, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mScrimSrcModeEnabled:Z
if-eqz v5, :cond_c
.line 2392
iget-object v5, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mBackdropFront:Landroid/widget/ImageView;
invoke-virtual {v5}, Landroid/widget/ImageView;->getDrawable()Landroid/graphics/drawable/Drawable;
move-result-object v5
invoke-virtual {v5}, Landroid/graphics/drawable/Drawable;->mutate()Landroid/graphics/drawable/Drawable;
move-result-object v5
iget-object v7, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mSrcOverXferMode:Landroid/graphics/PorterDuffXfermode;
invoke-virtual {v5, v7}, Landroid/graphics/drawable/Drawable;->setXfermode(Landroid/graphics/Xfermode;)V
.line 2394
:cond_c
iget-object v5, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mBackdropFront:Landroid/widget/ImageView;
invoke-virtual {v5, v10}, Landroid/widget/ImageView;->setAlpha(F)V
.line 2395
iget-object v5, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mBackdropFront:Landroid/widget/ImageView;
invoke-virtual {v5, v6}, Landroid/widget/ImageView;->setVisibility(I)V
.line 2406
.end local v1 # "drawable":Landroid/graphics/drawable/Drawable;
:goto_4
iget-object v5, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mBackdropBack:Landroid/widget/ImageView;
invoke-virtual {v5, v0}, Landroid/widget/ImageView;->setImageBitmap(Landroid/graphics/Bitmap;)V
.line 2408
iget-boolean v5, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mScrimSrcModeEnabled:Z
if-eqz v5, :cond_d
.line 2409
iget-object v5, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mBackdropBack:Landroid/widget/ImageView;
invoke-virtual {v5}, Landroid/widget/ImageView;->getDrawable()Landroid/graphics/drawable/Drawable;
move-result-object v5
invoke-virtual {v5}, Landroid/graphics/drawable/Drawable;->mutate()Landroid/graphics/drawable/Drawable;
move-result-object v5
iget-object v6, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mSrcXferMode:Landroid/graphics/PorterDuffXfermode;
invoke-virtual {v5, v6}, Landroid/graphics/drawable/Drawable;->setXfermode(Landroid/graphics/Xfermode;)V
.line 2412
:cond_d
iget-object v5, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mBackdropFront:Landroid/widget/ImageView;
invoke-virtual {v5}, Landroid/widget/ImageView;->getVisibility()I
move-result v5
if-nez v5, :cond_0
.line 2419
iget-object v5, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mBackdropFront:Landroid/widget/ImageView;
invoke-virtual {v5}, Landroid/widget/ImageView;->animate()Landroid/view/ViewPropertyAnimator;
move-result-object v5
const-wide/16 v6, 0xfa
invoke-virtual {v5, v6, v7}, Landroid/view/ViewPropertyAnimator;->setDuration(J)Landroid/view/ViewPropertyAnimator;
move-result-object v5
invoke-virtual {v5, v9}, Landroid/view/ViewPropertyAnimator;->alpha(F)Landroid/view/ViewPropertyAnimator;
move-result-object v5
iget-object v6, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mHideBackdropFront:Ljava/lang/Runnable;
invoke-virtual {v5, v6}, Landroid/view/ViewPropertyAnimator;->withEndAction(Ljava/lang/Runnable;)Landroid/view/ViewPropertyAnimator;
goto/16 :goto_0
.line 2397
:cond_e
iget-object v5, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mBackdropFront:Landroid/widget/ImageView;
const/4 v6, 0x4
invoke-virtual {v5, v6}, Landroid/widget/ImageView;->setVisibility(I)V
goto :goto_4
.end method
Tks pro for this tut
you can help me transparent background music in lockscreens
I think Fullscreen Album Covers on lockscreen.. Very Cool thing
niaboc79 said:
5) Save file, rebuild and sign (move Meta Folder and Manifest from original apk to new).
Click to expand...
Click to collapse
I don't quite understand this part here, can you please elaborate more? I have done the rest but am confused about this step.
Thanks
masteriori said:
I don't quite understand this part here, can you please elaborate more? I have done the rest but am confused about this step.
Thanks
Click to expand...
Click to collapse
Open old and new apk with 7zip and move what I said from old to new
Envoyé de mon D6503 en utilisant Tapatalk
is it same think is this one?
http://repo.xposed.info/module/com.chaimchaikin.lockscreenalbumartremover
thanks

[Guide][Dev only] How to fix read mode on custom kernels MiUI 8/9

So, it's a known issue that custom kernel breaks read mode cause xiaomi didn't cover up that part in released source code.
But, all the kernels (almost all) supports kcal. That's technology that used for example in kernel adiutor app allowing you to change your display color. More explained here - https://forum.xda-developers.com/android/software-hacking/dev-kcal-advanced-color-control-t3032080.
And that's the technology I used to bring back read mode in my xposed module here - https://forum.xda-developers.com/redmi-note-3/themes/app-bring-read-mode-custom-kernels-t3648558
So, now I share the guide with you how to bring read mode on any MIUI 8/9 device with custom kernel that supports kcal.
You need to know how to decompile/recompile jar files.
framework.jar/miui/hareware/display/DisplayFeatureManager.smali
find
Code:
# instance fields
add bellow following lines
Code:
.field public blue:[Ljava/lang/String;
.field public count:I
.field level:I
.field line:Ljava/lang/String;
.field old_blue:Ljava/lang/String;
.field path:Ljava/lang/String;
.field rgb_old:[Ljava/lang/String;
.field toogle_state:Z
find
Code:
.method private constructor <init>()V
.locals 2
and change it to
Code:
.method private constructor <init>()V
.locals 4
.prologue
const/4 v3, 0x0
Two strings were added and locals 2 now locals 4.
Inside
Code:
.method private constructor <init>()V
find
Code:
return-void
and paste above
Code:
.line 19
const-string v0, " "
iput-object v0, p0, Lmiui/hareware/display/DisplayFeatureManager;->old_blue:Ljava/lang/String;
.line 21
const-string v0, "/sys/devices/platform/kcal_ctrl.0/kcal"
iput-object v0, p0, Lmiui/hareware/display/DisplayFeatureManager;->path:Ljava/lang/String;
.line 23
const/4 v0, 0x0
iput-object v0, p0, Lmiui/hareware/display/DisplayFeatureManager;->rgb_old:[Ljava/lang/String;
.line 24
iput v3, p0, Lmiui/hareware/display/DisplayFeatureManager;->level:I
.line 25
const/16 v0, 0x8
new-array v0, v0, [Ljava/lang/String;
const-string v1, "220"
aput-object v1, v0, v3
const/4 v1, 0x1
const-string v2, "205"
aput-object v2, v0, v1
const/4 v1, 0x2
const-string v2, "190"
aput-object v2, v0, v1
const/4 v1, 0x3
const-string v2, "175"
aput-object v2, v0, v1
const/4 v1, 0x4
const-string v2, "160"
aput-object v2, v0, v1
const/4 v1, 0x5
const-string v2, "145"
aput-object v2, v0, v1
const/4 v1, 0x6
const-string v2, "130"
aput-object v2, v0, v1
const/4 v1, 0x7
const-string v2, "125"
aput-object v2, v0, v1
iput-object v0, p0, Lmiui/hareware/display/DisplayFeatureManager;->blue:[Ljava/lang/String;
.line 27
iput v3, p0, Lmiui/hareware/display/DisplayFeatureManager;->count:I
now find
Code:
.method public setEyeCare(I)V
inside it find
Code:
return-void
and paste above it
Code:
invoke-virtual {p0, p1}, Lmiui/hareware/display/DisplayFeatureManager;->s0bes(I)V
now at the end of the smali file add following lines
Code:
.method public RMcontrol(ZLjava/lang/String;)V
.locals 9
.param p1, "z" # Z
.param p2, "b" # Ljava/lang/String;
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/FileNotFoundException;,
Ljava/io/IOException;
}
.end annotation
.prologue
const/4 v6, 0x1
.line 54
const/4 v5, 0x0
.line 55
:try_start_0
new-instance v1, Ljava/io/FileInputStream;
iget-object v4, p0, Lmiui/hareware/display/DisplayFeatureManager;->path:Ljava/lang/String;
invoke-direct {v1, v4}, Ljava/io/FileInputStream;-><init>(Ljava/lang/String;)V
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_3
.line 56
.local v1, "fis":Ljava/io/InputStream;
:try_start_1
new-instance v2, Ljava/io/InputStreamReader;
const-string v4, "UTF-8"
invoke-static {v4}, Ljava/nio/charset/Charset;->forName(Ljava/lang/String;)Ljava/nio/charset/Charset;
move-result-object v4
invoke-direct {v2, v1, v4}, Ljava/io/InputStreamReader;-><init>(Ljava/io/InputStream;Ljava/nio/charset/Charset;)V
:try_end_1
.catchall {:try_start_1 .. :try_end_1} :catchall_2
.line 57
.local v2, "isr":Ljava/io/InputStreamReader;
:try_start_2
new-instance v0, Ljava/io/BufferedReader;
invoke-direct {v0, v2}, Ljava/io/BufferedReader;-><init>(Ljava/io/Reader;)V
:try_end_2
.catchall {:try_start_2 .. :try_end_2} :catchall_4
.line 60
.local v0, "br":Ljava/io/BufferedReader;
if-eqz p1, :cond_b
.line 61
:try_start_3
iget v4, p0, Lmiui/hareware/display/DisplayFeatureManager;->count:I
if-ge v4, v6, :cond_0
.line 62
iget v4, p0, Lmiui/hareware/display/DisplayFeatureManager;->count:I
add-int/lit8 v4, v4, 0x1
iput v4, p0, Lmiui/hareware/display/DisplayFeatureManager;->count:I
.line 63
:goto_0
invoke-virtual {v0}, Ljava/io/BufferedReader;->readLine()Ljava/lang/String;
move-result-object v4
iput-object v4, p0, Lmiui/hareware/display/DisplayFeatureManager;->line:Ljava/lang/String;
if-nez v4, :cond_5
.line 66
:cond_0
invoke-virtual {v0}, Ljava/io/BufferedReader;->close()V
.line 67
new-instance v4, Ljava/lang/StringBuilder;
iget-object v6, p0, Lmiui/hareware/display/DisplayFeatureManager;->rgb_old:[Ljava/lang/String;
const/4 v7, 0x0
aget-object v6, v6, v7
invoke-static {v6}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v6
invoke-direct {v4, v6}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
const-string v6, " "
invoke-virtual {v4, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v4
iget-object v6, p0, Lmiui/hareware/display/DisplayFeatureManager;->rgb_old:[Ljava/lang/String;
const/4 v7, 0x1
aget-object v6, v6, v7
invoke-virtual {v4, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v4
const-string v6, " "
invoke-virtual {v4, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v4
invoke-virtual {v4, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v4
invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v3
.line 68
.local v3, "rgb":Ljava/lang/String;
iget-object v4, p0, Lmiui/hareware/display/DisplayFeatureManager;->path:Ljava/lang/String;
invoke-static {v4, v3}, Landroid/miui/Shell;->write(Ljava/lang/String;Ljava/lang/String;)Z
:try_end_3
.catchall {:try_start_3 .. :try_end_3} :catchall_0
.line 77
.end local v3 # "rgb":Ljava/lang/String;
:cond_1
:goto_1
if-eqz v0, :cond_2
:try_start_4
invoke-virtual {v0}, Ljava/io/BufferedReader;->close()V
:try_end_4
.catchall {:try_start_4 .. :try_end_4} :catchall_4
:cond_2
if-eqz v2, :cond_3
:try_start_5
invoke-virtual {v2}, Ljava/io/InputStreamReader;->close()V
:try_end_5
.catchall {:try_start_5 .. :try_end_5} :catchall_2
:cond_3
if-eqz v1, :cond_4
:try_start_6
invoke-virtual {v1}, Ljava/io/InputStream;->close()V
:try_end_6
.catchall {:try_start_6 .. :try_end_6} :catchall_3
.line 79
:cond_4
return-void
.line 64
:cond_5
:try_start_7
iget-object v4, p0, Lmiui/hareware/display/DisplayFeatureManager;->line:Ljava/lang/String;
const-string v6, " "
invoke-virtual {v4, v6}, Ljava/lang/String;->split(Ljava/lang/String;)[Ljava/lang/String;
move-result-object v4
iput-object v4, p0, Lmiui/hareware/display/DisplayFeatureManager;->rgb_old:[Ljava/lang/String;
:try_end_7
.catchall {:try_start_7 .. :try_end_7} :catchall_0
goto :goto_0
.line 77
:catchall_0
move-exception v4
if-eqz v0, :cond_6
:try_start_8
invoke-virtual {v0}, Ljava/io/BufferedReader;->close()V
:cond_6
throw v4
:try_end_8
.catchall {:try_start_8 .. :try_end_8} :catchall_1
:catchall_1
move-exception v5
move-object v8, v5
move-object v5, v4
move-object v4, v8
.end local v0 # "br":Ljava/io/BufferedReader;
:goto_2
if-nez v5, :cond_c
move-object v5, v4
:cond_7
:goto_3
if-eqz v2, :cond_8
:try_start_9
invoke-virtual {v2}, Ljava/io/InputStreamReader;->close()V
:cond_8
throw v5
:try_end_9
.catchall {:try_start_9 .. :try_end_9} :catchall_2
.end local v2 # "isr":Ljava/io/InputStreamReader;
:catchall_2
move-exception v4
if-nez v5, :cond_d
move-object v5, v4
:cond_9
:goto_4
if-eqz v1, :cond_a
:try_start_a
invoke-virtual {v1}, Ljava/io/InputStream;->close()V
:cond_a
throw v5
:try_end_a
.catchall {:try_start_a .. :try_end_a} :catchall_3
.end local v1 # "fis":Ljava/io/InputStream;
:catchall_3
move-exception v4
if-nez v5, :cond_e
:goto_5
throw v4
.line 71
.restart local v0 # "br":Ljava/io/BufferedReader;
.restart local v1 # "fis":Ljava/io/InputStream;
.restart local v2 # "isr":Ljava/io/InputStreamReader;
:cond_b
:try_start_b
iget-object v4, p0, Lmiui/hareware/display/DisplayFeatureManager;->rgb_old:[Ljava/lang/String;
if-eqz v4, :cond_1
.line 72
new-instance v4, Ljava/lang/StringBuilder;
iget-object v6, p0, Lmiui/hareware/display/DisplayFeatureManager;->rgb_old:[Ljava/lang/String;
const/4 v7, 0x0
aget-object v6, v6, v7
invoke-static {v6}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v6
invoke-direct {v4, v6}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
const-string v6, " "
invoke-virtual {v4, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v4
iget-object v6, p0, Lmiui/hareware/display/DisplayFeatureManager;->rgb_old:[Ljava/lang/String;
const/4 v7, 0x1
aget-object v6, v6, v7
invoke-virtual {v4, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v4
const-string v6, " "
invoke-virtual {v4, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v4
iget-object v6, p0, Lmiui/hareware/display/DisplayFeatureManager;->rgb_old:[Ljava/lang/String;
const/4 v7, 0x2
aget-object v6, v6, v7
invoke-virtual {v4, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v4
invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v3
.line 73
.restart local v3 # "rgb":Ljava/lang/String;
iget-object v4, p0, Lmiui/hareware/display/DisplayFeatureManager;->path:Ljava/lang/String;
invoke-static {v4, v3}, Landroid/miui/Shell;->write(Ljava/lang/String;Ljava/lang/String;)Z
:try_end_b
.catchall {:try_start_b .. :try_end_b} :catchall_0
goto :goto_1
.line 77
.end local v0 # "br":Ljava/io/BufferedReader;
.end local v3 # "rgb":Ljava/lang/String;
:cond_c
if-eq v5, v4, :cond_7
:try_start_c
invoke-virtual {v5, v4}, Ljava/lang/Throwable;->addSuppressed(Ljava/lang/Throwable;)V
:try_end_c
.catchall {:try_start_c .. :try_end_c} :catchall_2
goto :goto_3
.end local v2 # "isr":Ljava/io/InputStreamReader;
:cond_d
if-eq v5, v4, :cond_9
:try_start_d
invoke-virtual {v5, v4}, Ljava/lang/Throwable;->addSuppressed(Ljava/lang/Throwable;)V
:try_end_d
.catchall {:try_start_d .. :try_end_d} :catchall_3
goto :goto_4
.end local v1 # "fis":Ljava/io/InputStream;
:cond_e
if-eq v5, v4, :cond_f
invoke-virtual {v5, v4}, Ljava/lang/Throwable;->addSuppressed(Ljava/lang/Throwable;)V
:cond_f
move-object v4, v5
goto :goto_5
.restart local v1 # "fis":Ljava/io/InputStream;
.restart local v2 # "isr":Ljava/io/InputStreamReader;
:catchall_4
move-exception v4
goto :goto_2
.end method
.method public s0bes(I)V
.locals 3
.param p1, "param" # I
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/lang/Throwable;
}
.end annotation
.prologue
const/4 v2, 0x0
.line 31
if-eqz p1, :cond_0
.line 32
iput p1, p0, Lmiui/hareware/display/DisplayFeatureManager;->level:I
.line 33
const/4 v0, 0x1
iget-object v1, p0, Lmiui/hareware/display/DisplayFeatureManager;->blue:[Ljava/lang/String;
iget v2, p0, Lmiui/hareware/display/DisplayFeatureManager;->level:I
add-int/lit8 v2, v2, -0x1
aget-object v1, v1, v2
invoke-virtual {p0, v0, v1}, Lmiui/hareware/display/DisplayFeatureManager;->RMcontrol(ZLjava/lang/String;)V
.line 38
:goto_0
return-void
.line 35
:cond_0
iput v2, p0, Lmiui/hareware/display/DisplayFeatureManager;->level:I
.line 36
iget-object v0, p0, Lmiui/hareware/display/DisplayFeatureManager;->blue:[Ljava/lang/String;
iget v1, p0, Lmiui/hareware/display/DisplayFeatureManager;->level:I
aget-object v0, v0, v1
invoke-virtual {p0, v2, v0}, Lmiui/hareware/display/DisplayFeatureManager;->RMcontrol(ZLjava/lang/String;)V
goto :goto_0
.end method
I have already tested that approach here - https://forum.xda-developers.com/showpost.php?p=73728907&postcount=734 and as people reported it works.
@Orochixxx, @JamFlux , you can use the guide to fix the issue in your MIUI9 ports.
UPDATE 03.12.2017
If the hack doesn't work anymore
it's easy to fix
The instruction is the same except the path. Now it's in services.jar/com/android/server/display/DisplayFeatureManager.smali
And after you paste new code you should replace (ctrl+H)
Code:
Lmiui/hareware/display/DisplayFeatureManager
to
Code:
Lcom/android/server/display/DisplayFeatureManager
Thanks @S0bes, very usefull.
I will to test and apply to epic rom port if every goes well and smooth.
---------- Post added at 04:58 PM ---------- Previous post was at 04:18 PM ----------
I tried it but its didn't work for me.
Please, may be I missunterstood the instructions.
Please, write me to @JamFlux on telegram.
How to fix switch on read mode crash restart
No method echo in framework.jar
Tested in rom epic 7.8.31 nouget
Add method
.method public echo(Ljava/lang/String;Ljava/lang/StringV
.locals 4
.param p1, "value" # Ljava/lang/String;
.param p2, "path" # Ljava/lang/String;
.prologue
.line 42
new-instance v2, Ljava/lang/StringBuilder;
const-string v3, "echo "
invoke-direct {v2, v3}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/StringV
invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/StringLjava/lang/StringBuilder;
move-result-object v2
const-string v3, " > "
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/StringLjava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v2, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/StringLjava/lang/StringBuilder;
move-result-object v2
const-string v3, "\n"
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/StringLjava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
.line 44
.local v0, "cmd":Ljava/lang/String;
:try_start_0
invoke-static {}, Ljava/lang/Runtime;->getRuntime()Ljava/lang/Runtime;
move-result-object v2
const-string v3, "su"
invoke-virtual {v2, v3}, Ljava/lang/Runtime;->exec(Ljava/lang/StringLjava/lang/Process;
move-result-object v2
iput-object v2, p0, Lmiui/hareware/display/DisplayFeatureManager;->suProcess:Ljava/lang/Process;
.line 45
iget-object v2, p0, Lmiui/hareware/display/DisplayFeatureManager;->suProcess:Ljava/lang/Process;
invoke-virtual {v2}, Ljava/lang/Process;->getOutputStream()Ljava/io/OutputStream;
move-result-object v1
.line 46
.local v1, "os":Ljava/io/OutputStream;
invoke-virtual {v0}, Ljava/lang/String;->getBytes()[B
move-result-object v2
invoke-virtual {v1, v2}, Ljava/io/OutputStream;->write([B)V
.line 47
invoke-virtual {v1}, Ljava/io/OutputStream;->flush()V
:try_end_0
.catch Ljava/io/IOException; {:try_start_0 .. :try_end_0} :catch_0
.line 50
.end local v1 # "os":Ljava/io/OutputStream;
:goto_0
return-void
.line 48
:catch_0
move-exception v2
goto :goto_0
.end method
No
.field private suProcess:Ljava/lang/Process;
In guide add
Done
@Joekerz_HxM
If you use the guide right you can not get these errors you discribed. What I see is you took RMcontrol from somewhere else (like my patch_1) cause it contains echo method. Then you pasted suProcess field cause it used in echo method.
this guide doesn't requires root access so, there's no point in echo method.
instead I use that string in RMcontrol method (in place where was echo method called)
Code:
invoke-static {v4, v3}, Landroid/miui/Shell;->write(Ljava/lang/String;Ljava/lang/String;)Z
which does the same as echo method in patch_1 I released for turk rom but without root permission
Ok read mode done now fixed thanks you
Do you know how to fix auto brightness I following this guide
https://forum.xda-developers.com/redmi-note-2/development/autobrightness-fix-miui-roms-t3516409
But stille not work
Joekerz_HxM said:
Ok read mode done now fixed thanks you
Do you know how to fix auto brightness I following this guide
https://forum.xda-developers.com/redmi-note-2/development/autobrightness-fix-miui-roms-t3516409
But stille not work
Click to expand...
Click to collapse
well, as I heard not everyone is facing the issue with autobrightness. That could be cause of different sensors phone shipped with. As far as I know there're 2 revisions of light sensor on our device - normal one and the one with gyro bug (when there's less then 10lux phone gyro freezes). You can google the issue, a lot of people facing it when trying to play youtube 360 video in the dark area. So, my point is that the problem with autobrightnes could be hardware related, so there won't be any fix at all. Or may be I wrong. May be we just should copy missing libraries for light sensor (just like with 2 revisions of fingerprint scanner).
What I think you should do is to decompile service.jar from MIUI9 MM beta and look inside .smali files and replace lines or even the whole .smali file according to this https://forum.xda-developers.com/redmi-note-2/development/autobrightness-fix-miui-roms-t3516409
BTW, could you describe what is wtong exactly with autobrightness cause I don't use the rom now
Is it possible to make a universal flashable zip for this mod?
Sent from my Redmi Note 3 using Tapatalk
Not work latest miui 9 nougat 7.11.16
I tried. But not working in miuipro rom
.method private constructor <init>()V
.registers 3
.prologue
.line 40
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
I find this
Updated. FIxed
UPDATE 03.12.2017
If the hack doesn't work anymore
it's easy to fix
The instruction is the same except the path. Now it's in services.jar/com/android/server/display/DisplayFeatureManager.smali
And after you paste new code you should replace (ctrl+H)
Code:
Lmiui/hareware/display/DisplayFeatureManager
to
Code:
Lcom/android/server/display/DisplayFeatureManager
[/QUOTE]
Only this can fix the issue without editing framework.jar
There is a problem with kcal in custom kernel vs miui9 in mido , every time unlocking screen the colors will reset to default by miui , is their any way to disable this function or miui color engine so we can use kcal in custom kernel . thanks

[GUIDE][SMALI][Android 10][How to Add Blur Expanded Notification Panel Android 10]

Hello guys i wana share you how to make blur effect on your expanded notification Android 10, huge thanks to @serajr for source code blur LP
ALWAYS BACKUP BEFORE YOU MODIFY YOUR ROM
I don't take any responsibility for any damage that may occur while you doing this, you are free no force to do this
Tested On Xperia XZP running [Bliss ROM Android 10]
Credit and thanks to :
- Sir @serajr for source code
- Abdullah Ba'agill
- @Nathan Ali Ashari
- paraS.H.I.T team
- mediatek Android Art and Dev Reborn (MAAaDR) (Fb group)
- Hidannn
- Bliss ROM
- And You
Requirements:
1. Knowledge About editing smali
2. SystemUI.apk
3. Latest APKTool
4. text Editor like Notepad ++
Start:
- Download smali.zip on Attached Files
- Decompile SystemUI.apk
- Merge the complete files to your SystemUI.apk
- Now Open com/android/systemui/statusbar/phone/NotificationPanelView.smali
above # static fields
add :
Code:
[COLOR="Blue"]# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/android/systemui/statusbar/phone/NotificationPanelView$Animation;
}
.end annotation[/COLOR]
below # static fields
add
Code:
# static fields
[COLOR="blue"].field private static mAlphaAnimation:Landroid/view/animation/AlphaAnimation;
.field private static mAnimationListener:Landroid/view/animation/Animation$AnimationListener;
.field private static mBlurRadius:I
.field private static mBlurScale:I
.field public static mBlurredScreenBitmap:Landroid/graphics/Bitmap;
.field private static mBlurredStatusBarExpandedEnabled:Z
.field private static mBlurredView:Landroid/widget/FrameLayout;
.field public static mDisplay:[I
.field public static mKontek:Landroid/content/Context;[/COLOR]
below # direct methods
add
Code:
[COLOR="blue"].method static synthetic access$L1000010()Landroid/view/animation/AlphaAnimation;
.locals 3
sget-object v2, Lcom/android/systemui/statusbar/phone/NotificationPanelView;->mAlphaAnimation:Landroid/view/animation/AlphaAnimation;
move-object v0, v2
return-object v0
.end method
.method static synthetic access$L1000004()Landroid/widget/FrameLayout;
.locals 1
.line 57
sget-object v0, Lcom/android/systemui/statusbar/phone/NotificationPanelView;->mBlurredView:Landroid/widget/FrameLayout;
return-object v0
.end method
.method static synthetic access$S1000010(Landroid/view/animation/AlphaAnimation;)V
.locals 4
move-object v0, p0
move-object v3, v0
sput-object v3, Lcom/android/systemui/statusbar/phone/NotificationPanelView;->mAlphaAnimation:Landroid/view/animation/AlphaAnimation;
return-void
.end method[/COLOR]
search .method public constructor <init>(Landroid/content/Context;Landroid/util/AttributeSet;Lcom/android/systemui/util/InjectionInflationController;Lcom/android/systemui/statusbar/notification/NotificationWakeUpCoordinator;Lcom/android/systemui/statusbar/PulseExpansionHandler;Lcom/android/systemui/statusbar/notification/DynamicPrivacyController;Lcom/android/systemui/statusbar/phone/KeyguardBypassController;Lcom/android/systemui/plugins/FalsingManagerV
add red line
Code:
[COLOR="blue"].method public constructor <init>(Landroid/content/Context;Landroid/util/AttributeSet;Lcom/android/systemui/util/InjectionInflationController;Lcom/android/systemui/statusbar/notification/NotificationWakeUpCoordinator;Lcom/android/systemui/statusbar/PulseExpansionHandler;Lcom/android/systemui/statusbar/notification/DynamicPrivacyController;Lcom/android/systemui/statusbar/phone/KeyguardBypassController;Lcom/android/systemui/plugins/FalsingManager;)V
.locals 13
move-object v0, p0
move-object v1, p1
move-object/from16 v2, p5
.line 505
invoke-direct {p0, p1, p2}, Lcom/android/systemui/statusbar/phone/PanelView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V[/COLOR]
[COLOR="Red"]new-instance v3, Lcom/android/systemui/statusbar/phone/NotificationPanelView$Animation;
invoke-direct {v3, p0}, Lcom/android/systemui/statusbar/phone/NotificationPanelView$Animation;-><init>(Lcom/android/systemui/statusbar/phone/NotificationPanelView;)V
sput-object v3, Lcom/android/systemui/statusbar/phone/NotificationPanelView;->mAnimationListener:Landroid/view/animation/Animation$AnimationListener;[/COLOR]
[COLOR="Blue"].line 197
new-instance v3, Lcom/android/systemui/statusbar/phone/NotificationPanelView$1;
invoke-direct {v3, p0}, Lcom/android/systemui/statusbar/phone/NotificationPanelView$1;-><init>(Lcom/android/systemui/statusbar/phone/NotificationPanelView;)V
iput-object v3, v0, Lcom/android/systemui/statusbar/phone/NotificationPanelView;->mKeyguardUpdateCallback:Lcom/android/keyguard/KeyguardUpdateMonitorCallback;[/COLOR]
below # virtual methods
add
Code:
[COLOR="blue"].method public blurBitmap(Landroid/graphics/Bitmap;I)Landroid/graphics/Bitmap;
.locals 11
.prologue
.line 116
move-object v0, p0
move-object v1, p1
move v2, p2
sget-object v9, Lcom/android/systemui/statusbar/phone/NotificationPanelView;->mKontek:Landroid/content/Context;
invoke-static {v9}, Landroid/renderscript/RenderScript;->create(Landroid/content/Context;)Landroid/renderscript/RenderScript;
move-result-object v9
move-object v4, v9
.line 117
move-object v9, v4
move-object v10, v4
invoke-static {v10}, Landroid/renderscript/Element;->U8_4(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;
move-result-object v10
invoke-static {v9, v10}, Landroid/renderscript/ScriptIntrinsicBlur;->create(Landroid/renderscript/RenderScript;Landroid/renderscript/Element;)Landroid/renderscript/ScriptIntrinsicBlur;
move-result-object v9
move-object v5, v9
.line 118
move-object v9, v4
move-object v10, v1
invoke-static {v9, v10}, Landroid/renderscript/Allocation;->createFromBitmap(Landroid/renderscript/RenderScript;Landroid/graphics/Bitmap;)Landroid/renderscript/Allocation;
move-result-object v9
move-object v6, v9
.line 119
move-object v9, v4
move-object v10, v6
invoke-virtual {v10}, Landroid/renderscript/Allocation;->getType()Landroid/renderscript/Type;
move-result-object v10
invoke-static {v9, v10}, Landroid/renderscript/Allocation;->createTyped(Landroid/renderscript/RenderScript;Landroid/renderscript/Type;)Landroid/renderscript/Allocation;
move-result-object v9
move-object v7, v9
.line 120
move-object v9, v5
move v10, v2
int-to-float v10, v10
invoke-virtual {v9, v10}, Landroid/renderscript/ScriptIntrinsicBlur;->setRadius(F)V
.line 121
move-object v9, v5
move-object v10, v6
invoke-virtual {v9, v10}, Landroid/renderscript/ScriptIntrinsicBlur;->setInput(Landroid/renderscript/Allocation;)V
.line 122
move-object v9, v5
move-object v10, v7
invoke-virtual {v9, v10}, Landroid/renderscript/ScriptIntrinsicBlur;->forEach(Landroid/renderscript/Allocation;)V
.line 123
move-object v9, v7
move-object v10, v1
invoke-virtual {v9, v10}, Landroid/renderscript/Allocation;->copyTo(Landroid/graphics/Bitmap;)V
.line 124
move-object v9, v1
move-object v0, v9
return-object v0
.end method
.method public createBlurredView()V
.locals 10
.annotation system Ldalvik/annotation/Signature;
value = {
"()V"
}
.end annotation
.prologue
.line 419
move-object v0, p0
invoke-virtual {v0}, Lcom/android/systemui/statusbar/phone/NotificationPanelView;->getContext()Landroid/content/Context;
move-result-object v2
sput-object v2, Lcom/android/systemui/statusbar/phone/NotificationPanelView;->mKontek:Landroid/content/Context;
.line 420
new-instance v2, Landroid/view/animation/AlphaAnimation;
move-object v9, v2
move-object v2, v9
move-object v3, v9
const/4 v4, 0x0
const/high16 v5, 0x3f800000 # 1.0f
invoke-direct {v3, v4, v5}, Landroid/view/animation/AlphaAnimation;-><init>(FF)V
sput-object v2, Lcom/android/systemui/statusbar/phone/NotificationPanelView;->mAlphaAnimation:Landroid/view/animation/AlphaAnimation;
.line 421
sget-object v2, Lcom/android/systemui/statusbar/phone/NotificationPanelView;->mAlphaAnimation:Landroid/view/animation/AlphaAnimation;
const/16 v3, 0x12c
int-to-long v3, v3
invoke-virtual {v2, v3, v4}, Landroid/view/animation/AlphaAnimation;->setDuration(J)V
.line 422
sget-object v2, Lcom/android/systemui/statusbar/phone/NotificationPanelView;->mAlphaAnimation:Landroid/view/animation/AlphaAnimation;
move-object v3, v0
sget-object v3, Lcom/android/systemui/statusbar/phone/NotificationPanelView;->mAnimationListener:Landroid/view/animation/Animation$AnimationListener;
invoke-virtual {v2, v3}, Landroid/view/animation/AlphaAnimation;->setAnimationListener(Landroid/view/animation/Animation$AnimationListener;)V
.line 423
new-instance v2, Landroid/widget/FrameLayout;
move-object v9, v2
move-object v2, v9
move-object v3, v9
move-object v4, v0
iget-object v4, v4, Landroid/view/View;->mContext:Landroid/content/Context;
invoke-direct {v3, v4}, Landroid/widget/FrameLayout;-><init>(Landroid/content/Context;)V
sput-object v2, Lcom/android/systemui/statusbar/phone/NotificationPanelView;->mBlurredView:Landroid/widget/FrameLayout;
.line 424
move-object v2, v0
sget-object v3, Lcom/android/systemui/statusbar/phone/NotificationPanelView;->mBlurredView:Landroid/widget/FrameLayout;
const/4 v4, 0x0
new-instance v5, Landroid/widget/FrameLayout$LayoutParams;
move-object v9, v5
move-object v5, v9
move-object v6, v9
const/4 v7, -0x1
const/4 v8, -0x1
invoke-direct {v6, v7, v8}, Landroid/widget/FrameLayout$LayoutParams;-><init>(II)V
invoke-virtual {v2, v3, v4, v5}, Lcom/android/systemui/statusbar/phone/NotificationPanelView;->addView(Landroid/view/View;ILandroid/view/ViewGroup$LayoutParams;)V
.line 425
move-object v2, v0
invoke-virtual {v2}, Lcom/android/systemui/statusbar/phone/NotificationPanelView;->requestLayout()V
.line 426
sget-object v2, Lcom/android/systemui/statusbar/phone/NotificationPanelView;->mBlurredView:Landroid/widget/FrameLayout;
const-string v3, "ready_to_blur"
invoke-virtual {v2, v3}, Landroid/widget/FrameLayout;->setTag(Ljava/lang/Object;)V
.line 427
sget-object v2, Lcom/android/systemui/statusbar/phone/NotificationPanelView;->mBlurredView:Landroid/widget/FrameLayout;
const/4 v3, 0x4
invoke-virtual {v2, v3}, Landroid/widget/FrameLayout;->setVisibility(I)V
return-void
.end method
.method public handleFadeInOut()V
.locals 12
.annotation system Ldalvik/annotation/Signature;
value = {
"()V"
}
.end annotation
.prologue
.line 65
move-object v0, p0
move-object v5, v0
invoke-virtual {v5}, Lcom/android/systemui/statusbar/phone/NotificationPanelView;->handleUpdateForUser()V
.line 66
sget-object v5, Lcom/android/systemui/statusbar/phone/NotificationPanelView;->mBlurredView:Landroid/widget/FrameLayout;
const-string v6, "blur_applied"
invoke-virtual {v5, v6}, Landroid/widget/FrameLayout;->setTag(Ljava/lang/Object;)V
.line 67
const/4 v5, 0x4
move v2, v5
.line 68
sget-boolean v5, Lcom/android/systemui/statusbar/phone/NotificationPanelView;->mBlurredStatusBarExpandedEnabled:Z
if-eqz v5, :cond_1
.line 69
move-object v5, v0
iget-boolean v5, v5, Lcom/android/systemui/statusbar/phone/NotificationPanelView;->mKeyguardShowing:Z
if-nez v5, :cond_0
move-object v5, v0
invoke-virtual {v5}, Lcom/android/systemui/statusbar/phone/NotificationPanelView;->isPanelVisibleBecauseOfHeadsUp()Z
move-result v5
if-eqz v5, :cond_4
:cond_0
const/4 v5, 0x4
:goto_0
move v3, v5
.line 70
move v5, v3
move v2, v5
.line 72
:cond_1
sget v5, Lcom/android/systemui/statusbar/phone/NotificationPanelView;->mBlurScale:I
const/4 v6, 0x0
if-ne v5, v6, :cond_2
.line 73
const/4 v5, 0x1
sput v5, Lcom/android/systemui/statusbar/phone/NotificationPanelView;->mBlurScale:I
.line 75
:cond_2
sget v5, Lcom/android/systemui/statusbar/phone/NotificationPanelView;->mBlurRadius:I
const/4 v6, 0x0
if-ne v5, v6, :cond_3
.line 76
const/4 v5, 0x1
sput v5, Lcom/android/systemui/statusbar/phone/NotificationPanelView;->mBlurRadius:I
.line 78
:cond_3
move-object v5, v0
sget-object v6, Lcom/android/systemui/statusbar/phone/NotificationPanelView;->mBlurredScreenBitmap:Landroid/graphics/Bitmap;
sget-object v7, Lcom/android/systemui/statusbar/phone/NotificationPanelView;->mDisplay:[I
const/4 v8, 0x0
aget v7, v7, v8
sget v8, Lcom/android/systemui/statusbar/phone/NotificationPanelView;->mBlurScale:I
div-int/2addr v7, v8
sget-object v8, Lcom/android/systemui/statusbar/phone/NotificationPanelView;->mDisplay:[I
const/4 v9, 0x1
aget v8, v8, v9
sget v9, Lcom/android/systemui/statusbar/phone/NotificationPanelView;->mBlurScale:I
div-int/2addr v8, v9
const/4 v9, 0x0
invoke-static {v6, v7, v8, v9}, Landroid/graphics/Bitmap;->createScaledBitmap(Landroid/graphics/Bitmap;IIZ)Landroid/graphics/Bitmap;
move-result-object v6
sget v7, Lcom/android/systemui/statusbar/phone/NotificationPanelView;->mBlurRadius:I
invoke-virtual {v5, v6, v7}, Lcom/android/systemui/statusbar/phone/NotificationPanelView;->blurBitmap(Landroid/graphics/Bitmap;I)Landroid/graphics/Bitmap;
move-result-object v5
sput-object v5, Lcom/android/systemui/statusbar/phone/NotificationPanelView;->mBlurredScreenBitmap:Landroid/graphics/Bitmap;
.line 79
sget-object v5, Lcom/android/systemui/statusbar/phone/NotificationPanelView;->mBlurredView:Landroid/widget/FrameLayout;
invoke-virtual {v5}, Landroid/widget/FrameLayout;->getLayoutParams()Landroid/view/ViewGroup$LayoutParams;
move-result-object v5
sget-object v6, Lcom/android/systemui/statusbar/phone/NotificationPanelView;->mDisplay:[I
const/4 v7, 0x0
aget v6, v6, v7
iput v6, v5, Landroid/view/ViewGroup$LayoutParams;->width:I
.line 80
sget-object v5, Lcom/android/systemui/statusbar/phone/NotificationPanelView;->mBlurredView:Landroid/widget/FrameLayout;
invoke-virtual {v5}, Landroid/widget/FrameLayout;->requestLayout()V
.line 81
new-instance v5, Landroid/graphics/drawable/BitmapDrawable;
move-object v11, v5
move-object v5, v11
move-object v6, v11
sget-object v7, Lcom/android/systemui/statusbar/phone/NotificationPanelView;->mBlurredScreenBitmap:Landroid/graphics/Bitmap;
invoke-direct {v6, v7}, Landroid/graphics/drawable/BitmapDrawable;-><init>(Landroid/graphics/Bitmap;)V
move-object v3, v5
.line 82
move-object v5, v3
const/4 v6, -0x1
sget-object v7, Landroid/graphics/PorterDuff$Mode;->MULTIPLY:Landroid/graphics/PorterDuff$Mode;
invoke-virtual {v5, v6, v7}, Landroid/graphics/drawable/BitmapDrawable;->setColorFilter(ILandroid/graphics/PorterDuff$Mode;)V
.line 83
sget-object v5, Lcom/android/systemui/statusbar/phone/NotificationPanelView;->mBlurredView:Landroid/widget/FrameLayout;
move-object v6, v3
invoke-virtual {v5, v6}, Landroid/widget/FrameLayout;->setBackground(Landroid/graphics/drawable/Drawable;)V
.line 84
sget-object v5, Lcom/android/systemui/statusbar/phone/NotificationPanelView;->mBlurredView:Landroid/widget/FrameLayout;
move v6, v2
invoke-virtual {v5, v6}, Landroid/widget/FrameLayout;->setVisibility(I)V
return-void
.line 69
:cond_4
const/4 v5, 0x0
goto :goto_0
.end method
.method public handleUpdateForUser()V
.locals 4
.annotation system Ldalvik/annotation/Signature;
value = {
"()V"
}
.end annotation
.prologue
const/4 v3, 0x3
const/4 v0, 0x1
.line 553
sget-object v1, Lcom/android/systemui/statusbar/phone/NotificationPanelView;->mKontek:Landroid/content/Context;
invoke-virtual {v1}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;
move-result-object v1
.line 555
const-string v2, "BLUR_SCALA"
invoke-static {v1, v2, v3}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I
move-result v2
sput v2, Lcom/android/systemui/statusbar/phone/NotificationPanelView;->mBlurScale:I
.line 557
const-string v2, "BLUR_RADIUS"
invoke-static {v1, v2, v3}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I
move-result v2
sput v2, Lcom/android/systemui/statusbar/phone/NotificationPanelView;->mBlurRadius:I
.line 559
const-string v2, "BLUR"
invoke-static {v1, v2, v0}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I
move-result v1
if-eq v1, v0, :cond_0
const/4 v0, 0x0
:cond_0
sput-boolean v0, Lcom/android/systemui/statusbar/phone/NotificationPanelView;->mBlurredStatusBarExpandedEnabled:Z
return-void
.end method
.method public recycle()V
.locals 2
.annotation system Ldalvik/annotation/Signature;
value = {
"()V"
}
.end annotation
.prologue
const/4 v1, 0x0
.line 613
sget-object v0, Lcom/android/systemui/statusbar/phone/NotificationPanelView;->mBlurredView:Landroid/widget/FrameLayout;
if-eqz v0, :cond_1
sget-object v0, Lcom/android/systemui/statusbar/phone/NotificationPanelView;->mBlurredView:Landroid/widget/FrameLayout;
invoke-virtual {v0}, Landroid/widget/FrameLayout;->getBackground()Landroid/graphics/drawable/Drawable;
move-result-object v0
if-eqz v0, :cond_1
.line 615
sget-object v0, Lcom/android/systemui/statusbar/phone/NotificationPanelView;->mBlurredView:Landroid/widget/FrameLayout;
invoke-virtual {v0}, Landroid/widget/FrameLayout;->getBackground()Landroid/graphics/drawable/Drawable;
move-result-object v0
instance-of v0, v0, Landroid/graphics/drawable/BitmapDrawable;
if-eqz v0, :cond_0
.line 616
sget-object v0, Lcom/android/systemui/statusbar/phone/NotificationPanelView;->mBlurredView:Landroid/widget/FrameLayout;
invoke-virtual {v0}, Landroid/widget/FrameLayout;->getBackground()Landroid/graphics/drawable/Drawable;
move-result-object v0
check-cast v0, Landroid/graphics/drawable/BitmapDrawable;
invoke-virtual {v0}, Landroid/graphics/drawable/BitmapDrawable;->getBitmap()Landroid/graphics/Bitmap;
move-result-object v0
.line 617
if-eqz v0, :cond_0
.line 618
invoke-virtual {v0}, Landroid/graphics/Bitmap;->recycle()V
move-object v0, v1
.line 619
check-cast v0, Landroid/graphics/Bitmap;
.line 623
:cond_0
sget-object v0, Lcom/android/systemui/statusbar/phone/NotificationPanelView;->mBlurredView:Landroid/widget/FrameLayout;
check-cast v1, Landroid/graphics/drawable/Drawable;
invoke-virtual {v0, v1}, Landroid/widget/FrameLayout;->setBackground(Landroid/graphics/drawable/Drawable;)V
.line 625
:cond_1
sget-object v0, Lcom/android/systemui/statusbar/phone/NotificationPanelView;->mBlurredView:Landroid/widget/FrameLayout;
const-string v1, "ready_to_blur"
invoke-virtual {v0, v1}, Landroid/widget/FrameLayout;->setTag(Ljava/lang/Object;)V
sget-object v0, Lcom/android/systemui/statusbar/phone/NotificationPanelView;->mBlurredView:Landroid/widget/FrameLayout;
const/4 v1, 0x4
invoke-virtual {v0, v1}, Landroid/widget/FrameLayout;->setVisibility(I)V
return-void
.end method
.method public startBlurTask()V
.locals 2
.annotation system Ldalvik/annotation/Signature;
value = {
"()V"
}
.end annotation
.prologue
.line 91
sget-object v0, Lcom/android/systemui/statusbar/phone/NotificationPanelView;->mKontek:Landroid/content/Context;
invoke-static {v0}, Lcom/znxt/systemui/DisplayUtils;->TakeScreenshotSurface(Landroid/content/Context;)Landroid/graphics/Bitmap;
move-result-object v0
sput-object v0, Lcom/android/systemui/statusbar/phone/NotificationPanelView;->mBlurredScreenBitmap:Landroid/graphics/Bitmap;
.line 92
sget-object v0, Lcom/android/systemui/statusbar/phone/NotificationPanelView;->mKontek:Landroid/content/Context;
invoke-static {v0}, Lcom/znxt/systemui/DisplayUtils;->getRealDimensionDisplay(Landroid/content/Context;)[I
move-result-object v0
sput-object v0, Lcom/android/systemui/statusbar/phone/NotificationPanelView;->mDisplay:[I
.line 93
iget-boolean v0, p0, Lcom/android/systemui/statusbar/phone/NotificationPanelView;->mKeyguardShowing:Z
if-eqz v0, :cond_0
.line 94
sget-object v0, Lcom/android/systemui/statusbar/phone/NotificationPanelView;->mBlurredView:Landroid/widget/FrameLayout;
const/4 v1, 0x4
invoke-virtual {v0, v1}, Landroid/widget/FrameLayout;->setVisibility(I)V
.line 98
:goto_0
return-void
.line 97
:cond_0
invoke-virtual {p0}, Lcom/android/systemui/statusbar/phone/NotificationPanelView;->handleUpdateForUser()V
.line 98
invoke-virtual {p0}, Lcom/android/systemui/statusbar/phone/NotificationPanelView;->handleFadeInOut()V
goto :goto_0
.end method[/COLOR]
search .method protected onFinishInflate()V
add red line
Code:
[COLOR="blue"].method protected onFinishInflate()V
.locals 3
.line 575
invoke-super {p0}, Lcom/android/systemui/statusbar/phone/PanelView;->onFinishInflate()V[/COLOR]
[COLOR="Red"].line 437
invoke-virtual {p0}, Lcom/android/systemui/statusbar/phone/NotificationPanelView;->createBlurredView()V[/COLOR]
[COLOR="blue"].line 576
sget v0, Lcom/android/systemui/R$id;->keyguard_header:I
invoke-virtual {p0, v0}, Landroid/widget/FrameLayout;->findViewById(I)Landroid/view/View;
move-result-object v0
check-cast v0, Lcom/android/systemui/statusbar/phone/KeyguardStatusBarView;
iput-object v0, p0, Lcom/android/systemui/statusbar/phone/NotificationPanelView;->mKeyguardStatusBar:Lcom/android/systemui/statusbar/phone/KeyguardStatusBarView;[/COLOR]
Save and Close
- open com/android/systemui/statusbar/phone/StatusBar.smali
search .method makeExpandedVisible(Z)V
add red line
Code:
[COLOR="blue"].method makeExpandedVisible(Z)V
.locals[/COLOR] [COLOR="Red"]3 <--- change .locals 3 to locals. 4[/COLOR]
[COLOR="blue"]if-nez p1, :cond_1
.line 2639
iget-boolean v0, p0, Lcom/android/systemui/statusbar/phone/StatusBar;->mExpandedVisible:Z
if-nez v0, :cond_0
iget-object v0, p0, Lcom/android/systemui/statusbar/phone/StatusBar;->mCommandQueue:Lcom/android/systemui/statusbar/CommandQueue;
invoke-virtual {v0}, Lcom/android/systemui/statusbar/CommandQueue;->panelsEnabled()Z
move-result v0
if-nez v0, :cond_1
:cond_0
return-void
:cond_1
const/4 v0, 0x1[/COLOR]
[COLOR="Red"]iget-object v3, p0, Lcom/android/systemui/statusbar/phone/StatusBar;->mNotificationPanel:Lcom/android/systemui/statusbar/phone/NotificationPanelView;
.line 2673
invoke-virtual {v3}, Lcom/android/systemui/statusbar/phone/NotificationPanelView;->startBlurTask()V[/COLOR]
[COLOR="blue"].line 2643
iput-boolean v0, p0, Lcom/android/systemui/statusbar/phone/StatusBar;->mExpandedVisible:Z[/COLOR]
ScreenRecord:
https://youtu.be/pADQyCZDw4Y
- save and close
- recompile systemui and push
- don't forget instal app on Attached
- reboot your phone and tada
Screenshot
Screenshot
@Arif JeNong
The smali.zip is empty mate, there is nothing inside
Pandemic said:
@Arif JeNong
The smali.zip is empty mate, there is nothing inside
Click to expand...
Click to collapse
sorry . . . edit and re-upload, please try download again
Arif JeNong said:
sorry . . . edit and re-upload, please try download again
Click to expand...
Click to collapse
Great and i pm you but cant you send a message.
Hope there's a guide for aosp android 8.1.0
@Arif JeNong
This guide aint work for Xperia 1's SystemUI to many errors when compile, send me a pm please and you have telegram ?
Ya i have, my Telegram is @ Arifjenong46
Arif JeNong said:
Ya i have, my Telegram is @ Arifjenong46
Click to expand...
Click to collapse
Hi, I PM'd you on Telegram, can you help?
most of the codes seem similar to Samsung.
Would it work for Samsung too?
I tried but it was not booting, maybe i missed something
josephpatrick said:
most of the codes seem similar to Samsung.
Would it work for Samsung too?
I tried but it was not booting, maybe i missed something
Click to expand...
Click to collapse
Oks and no its not working and this is a sony forum
Pandemic said:
Oks and no its not working and this is a sony forum
Click to expand...
Click to collapse
Yes, i had seen it is not a Samsung forum but most of the codes were similar, so thought of checking

Categories

Resources