MIUI - Modification and decorations | Modification and decorations of MIUI firmware, instructions, discussion.



Rep: (3345)
MIUI - Modification and decorations

Important information. Read a must!
Patterns of modifications and instructions
Copy the content into your message and fill. If possible, try to use the code tag when inserting pieces of code in your instructions.
[CENTER] [COLOR = blue] [SIZE = 3] [B] Here we write the name of the lesson, as well as the version of MIUI [/ B] [/ SIZE] [/ COLOR] [/ CENTER]
Additional information if necessary (apktool version, android version, thanks, etc.)
[SPOILER = Description] Description, detailed instruction [/ SPOILER]
[SPOILER = Screenshots] Attach screenshots if necessary [/ SPOILER]

Catalog of instructions
Settings
Status bar, curtain notifications
Multimedia and sounds
Launcher / Desktop
Lock Screen / AoD
Caller / Contact
Reboot Menu / Recent Menu
Other
Useful links and tools
Profile and useful topics
The authors of modifications and the Administration of the forum are not responsible for the performance of your devices!
Remember: everything you do - you do at your own peril and risk!

For questions about filling Caps contact the Curator -OutsatQMS


Post has been editedOuts - 03.08.20, 20:14
Reason for editing: The color and size of the watch status bar for MIUI 11 | 12



Rep: (170)
sergeibah @ 30.12.16, 20:30*
releasing the following telephone number with the name of an incoming call?

dimen name = "call_info_margin_top">**. 0dip</ dimen>

It must be configured on an outgoing, down there, down on incoming.

Post has been editedrudik7777777 - 30.12.16, 20:55



Rep: (2130)
S0bes @ 16.10.16, 20:01*
3. when pressing the volume rocker by default, always adjusting media volume instead of ringing

answer his own question, I spied in xmiui

MIUI 8 Volume control media only

Either framework.jar (android / media /) or services.jar (com / android / server / audio /) file looking AudioService.smali
are looking for
.method private getActiveStreamType (I) I

look in any register contains the 0x2 at the beginning of the method and change to 0x3
It was
const / 4 v2, 0x2

has become
const / 4 v2, 0x3



Rep: (2135)
Correct work Auto Brightness.

On android 5.0.2 to correct operation Auto Brightness, usedexcellent instructionfromSW.urix2003 For android 6.0, this statement is not appropriate. But here everything was easier. For the response time is not necessary to pick Smal, there is no need to deodeksatsii firmware. The pickup time now in the framework-res / values ​​/ integers.xml
<integer name = "config_autoBrightnessBrighteningLightDebounce">4000</ integer># - time increase Auto Brightness
<integer name = "config_autoBrightnessDarkeningLightDebounce">8000</ integer># - while reducing the Auto Brightness

The values ​​are set in milliseconds. Full of happiness and corrected arrays.xml, values ​​taken from the previous manual.
It would seem that what could be simpler, disassembled / assembled and the problem is solved. But it turned out not so simple. After rebuilding the framework-res.apk, even without any changes, the system does not run stupidly. I had to find workarounds. I remembered the overlay, for a long time lying in the tabsinstruction
For example, I put a patch. I checked on//savagemessiahzine.com/ devdb / xiaomi_redmi_note_4: prime
Attached fileUpd_RN4_FIX_AutomaticBrightness.zip(363.71 KB)


As there is a simple solution that I suggested to the SW.bobN . These changes can be made and the theme. Tried, the option proved to work. In any case, the sample will put a patch with the theme. Attached fileFIX_AutomaticBrightness.zip (127.27 KB)


Post has been editedcherva70 - 02.02.17, 23:33



Rep: (131)
cherva70 @ 03.01.17, 18:02*
After rebuilding the framework-res.apk, even without any changes, the system does not run stupidly

* cherva70, I had a similar problem on a port MIUI8 android 6.0 - after assembly framework-res.apk system is not loaded. The problem was solved after jBART ​​to put checkbox on the "signature apk after compilation".
Attached Image


Post has been editedRefubish - 03.01.17, 14:31



Rep: (2135)
* Refubish,
Thanks, I'll try. But plus overlay or theme is that it is not necessary each time to pick APK when updating the firmware.



Rep: (1801)
We continue embellishment: rolleyes:

change backgroundcurtainsdepending on the time of day
with the inclusion in the settings

What do you get - the picture changes- Morning day Evening night
Attached Image
Attached Image
Attached Image
Attached Image

Attached Image
Attached Image

Instruction
MiuiSystemUI.apk
ATstatus_bar_expanded_single_page.xmlandstatus_bar_expanded.xmlafter these lines, respectively,
xmlns: systemui = "http: //schemas.android..s/com.android.systemui">
xmlns: android = "http://schemas.android.com/apk/res/android">
write
<com.lenox.Contextual android: layout_width = "fill_parent" android: layout_height = "fill_parent" />
(If you do Blur effect, we write below this line<com.acer.incallui.BlurImageView)
And in both of these files are deletedandroid: background = "@ drawable / notification_panel_bg"
Throws pictures and Smal from the archive folders ..
We collect.
Attached fileMiuiSystemUI.rar(3.05 MB)

--------------------------------------------------------------------------------------------------------------------------------------------
Settings.apk
Smal also throws on the way in the archive
ATstatus_bar_settings.xmlprescribe
<com.android.settings.SystemSettingStatusCheckBoxPreference android: defaultValue = "false" android: title = "@ string / expanded_header_app_name" android: key = "awesomehead" />
In strings.xml
<string name = "expanded_header_app_name">Background notifications panel</ string>
Putting ..
Attached fileSettings_smali.rar(1.33 KB)

P.S.
For those who do not want to load images and MiuiSystemUI extra weight respectively - offer to do the following (as I did: yes2:) Instead of drawing from the archive, put six pictures transparent 1x1 px. renaming the course as well as the originals. And now with the help ofTheYou may substitute any images thrown themcom.android.systemui
To avoid confusion, I put a file that you can see how to do - why not a white background, light text on it, and other unpleasant incidents Attached filecom.android.systemui.zip(663.77 KB)

Important!
If you are having problems with the preservation of the selected value

Parse: framework.jar
Open: Landroid / preference / Preference
We find the method: .method private dispatchSetInitialValue () V
In the beginning, we find the block:

invoke-virtual {p0}, Landroid / preference / Preference; ->getSharedPreferences () Landroid / content / SharedPreferences;
move-result-object v1
iget-object v2, p0, Landroid / preference / Preference; ->mKey: Ljava / lang / String;
invoke-interface {v1, v2}, Landroid / content / SharedPreferences; ->contains (Ljava / lang / String;) Z

And replaced with: invoke-virtual {p0}, Landroid / preference / Preference; ->isPersisted () Z

At the end of the file add a new method:

.method protected isPersisted () Z
.registers 3
.prologue
invoke-virtual {p0}, Landroid / preference / Preference; ->getSharedPreferences () Landroid / content / SharedPreferences;
move-result-object v0
iget-object v1, p0, Landroid / preference / Preference; ->mKey: Ljava / lang / String;
invoke-interface {v0, v1}, Landroid / content / SharedPreferences; ->contains (Ljava / lang / String;) Z
move-result v0
return v0
.end method


For tips on smali, thanksploik

Post has been editedTelevox - 04.01.17, 22:37
Reason for editing: Smali perfected))



Rep: (39)
* cherva70,
Sew Patch Auto Brightness, thought that he had finally fix more threshold with minimal lighting. Expectations were not fulfilled: rolleyes: noticed that he no longer launches the browser a couple of hours. Only helped to restore from backup. I admit that he could nakosyachit. But would that affect the brightness of the browser - fiction o.O
P.s. Sews just the first option, and then the second



Rep: (189)
How to patch ThemeManager for use third-party themes?



Rep: (2367)
* oleg2903, by multiromov put firmware)



Rep: (655)
* oleg2903,
How to patch ThemeManager
try :)



Rep: (172)
oleg2903 @ 05.01.17, 13:51*
How to patch ThemeManager for use third-party themes?

Another option, without interfering with the system resources:Discussion topics for MIUI v6 / v7 (Post Diman6267 # 48690390)



Rep: (56)
Reducing the threshold for low-battery dialogue

I have to say that the values ​​of integer in framework-res.apk do not affect the appearance of this dialogue. Parameters are registered directly in the appearance Smal.
Checked me on Xiaomi Redmi Note 2 Multirom 6.12.29 MIUI8 5.0.2 and respected Gribson user on Xiaomi.eu 6.12.29 for this same apparatus.
For dekompilatsii used apktool-3.0.0-master-f1e0a9f-20160905-Shaka
Instruction
We do a preliminary backup.
We need a file \ system \ priv-app \ MiuiSystemUI \ MiuiSystemUI.apk
It \ smali \ com \ android \ systemui \ power \ PowerUI.smali, which are looking for by searching the value 0x14. It must be in the method
.method public start () V

At me here such piece of code:
iget-object v1, p0, Lcom / android / systemui / power / PowerUI; ->mLowBatteryReminderLevels: [I

const / 16 v2, 0x14 /// 20% - the level below which appears the first time

aput v2, v1, v4

.line 89
iget-object v1, p0, Lcom / android / systemui / power / PowerUI; ->mLowBatteryReminderLevels: [I

const / 4 v2, 0x1

const / 16 v3, 0xa /// 10% - the level at which appears the second time

aput v3, v1, v2

We are interested in parameters 0x14 and 0xa. First - a level below which a dialog for the first time (20%), the second - the level dialog appears a second time (10%). The first bet on one more than you need, that is, if you have 15, then put 16 (0x10), if you need 10, 11 put (0xb). Second, I set myself the 5% (0x5). Rekompiliruem MiuiSystemUI.apk and throws in the original folder with the rights 644. The cache makes cleaning in rekaveri. Although multiromovskaya firmware itself is made specifically for this application.

Thanks
Thank* wowanbelousov for his instruction Which prompted me to search for a place. And Gribson user for what checked the instructions on another firmware.


Post has been editedrandom31 - 11.01.17, 20:11



Rep: (1801)
I see that the instruction is not in demand, (for skachivanivaniyam) ... so I decided to tie -
- incl. / Vykl..bez restarts and reboots any : D
addition to
quick launch bar at thecurtain
vidyuha -Attached filescreen-recording_20170106-144930.mp4(1.43 MB)


Post has been editedTelevox - 06.01.17, 20:27



Rep: (314)
Hello! Post a link to the manual on how to make photos full screen on MIUI



Rep: (655)
* masan7 , Full-screen photo



Rep: (2135)
Alex Ecstasy @ 05.01.17, 11:38*
P.s. Sews just the first option, and then the second

What for? It turns oil oil. Once you have decided to put the second option, you must first be removed.
I put only the principle of changing the speed of Auto Brightness. Brightness thresholds are arraysah, try, experiment.

Post has been editedcherva70 - 07.01.17, 11:40



Rep: (314)
* .dar,
thanks for the tip but something I can not find a single line
.class public Lcom / android / incallui / ContactInfoCache;
.super ljava / lang / Object;
.source "ContactInfoCache.java"

# interfaces
.implements Lcom / android / incallui / ContactsAsyncHelper $ OnImageLoadCompleteListener;


# annotations
.annotation system Ldalvik / annotation / MemberClasses;
value = {
Lcom / android / incallui / ContactInfoCache $ ContactCacheEntry ;,
Lcom / android / incallui / ContactInfoCache $ ContactInfoCacheCallback ;,
Lcom / android / incallui / ContactInfoCache $ FindInfoCallback ;,
Lcom / android / incallui / ContactInfoCache $ FindYellowPageInfoCallBack ;,
Lcom / android / incallui / ContactInfoCache $ OnlineCheckCallBack ;,
Lcom / android / incallui / ContactInfoCache $ PhoneNumberServiceListener ;,
Lcom / android / incallui / ContactInfoCache $ QueryMiProfileCallBack;
}
.end annotation


# static fields
.field private static final TAG: Ljava / lang / String;

.field private static sCache: Lcom / android / incallui / ContactInfoCache;


# instance fields
.field private final mCallBacks: Ljava / util / HashMap;
.annotation system Ldalvik / annotation / Signature;
value = {
"Ljava / util / HashMap",
"<",
"Ljava / lang / String;",
"Ljava / util / Set",
"<",
"Lcom / android / incallui / ContactInfoCache $ ContactInfoCacheCallback;",
">;>;"
}
.end annotation
.end field

.field private final mContext: Landroid / content / Context;

.field private final mInfoMap: Ljava / util / HashMap;
.annotation system Ldalvik / annotation / Signature;
value = {
"Ljava / util / HashMap",
"<",
"Ljava / lang / String;",
"Lcom / android / incallui / ContactInfoCache $ ContactCacheEntry;",
">;"
}
.end annotation
.end field

.field private final mPhoneNumberService: Lcom / android / incallui / service / PhoneNumberService;

.field private final mTelocationMap: Ljava / util / HashMap;
.annotation system Ldalvik / annotation / Signature;
value = {
"Ljava / util / HashMap",
"<",
"Ljava / lang / String;",
"Ljava / lang / String;",
">;"
}
.end annotation
.end field

.field private mYellowPageCallBacks: Ljava / util / Set;
.annotation system Ldalvik / annotation / Signature;
value = {
"Ljava / util / Set",
"<",
"Lcom / android / incallui / ContactInfoCache $ ContactInfoCacheCallback;",
">;"
}
.end annotation
.end field


# direct methods
.method static synthetic -get0 () Ljava / lang / String;
.locals 1

sget-object v0, Lcom / android / incallui / ContactInfoCache; ->TAG: Ljava / lang / String;

return object v0
.end method

.method static synthetic -get1 (Lcom / android / incallui / ContactInfoCache;) Ljava / util / HashMap;
.locals 1

iget-object v0, p0, Lcom / android / incallui / ContactInfoCache; ->mCallBacks: Ljava / util / HashMap;

return object v0
.end method

.method static synthetic -get2 (Lcom / android / incallui / ContactInfoCache;) Landroid / content / Context;
.locals 1

iget-object v0, p0, Lcom / android / incallui / ContactInfoCache; ->mContext: Landroid / content / Context;

return object v0
.end method

.method static synthetic -get3 (Lcom / android / incallui / ContactInfoCache;) Ljava / util / HashMap;
.locals 1

iget-object v0, p0, Lcom / android / incallui / ContactInfoCache; ->mInfoMap: Ljava / util / HashMap;

return object v0
.end method

.method static synthetic -get4 (Lcom / android / incallui / ContactInfoCache;) Ljava / util / Set;
.locals 1

iget-object v0, p0, Lcom / android / incallui / ContactInfoCache; ->mYellowPageCallBacks: Ljava / util / Set;

return object v0
.end method

.method static synthetic -set0 (Lcom / android / incallui / ContactInfoCache; Ljava / util / Set;) Ljava / util / Set;
.locals 0

iput-object p1, p0, Lcom / android / incallui / ContactInfoCache; ->mYellowPageCallBacks: Ljava / util / Set;

return-object p1
.end method

.method static synthetic -wrap0 (Lcom / android / incallui / ContactInfoCache; Landroid / content / Context; Ljava / lang / String; Lcom / android / incallui / CallerInfo; IZ) Lcom / android / incallui / ContactInfoCache $ ContactCacheEntry;
.locals 1
.param p1, "context" # Landroid / content / Context;
.param p2, "callId" # Ljava / lang / String;
.param p3, "info" # Lcom / android / incallui / CallerInfo;
.param p4, "presentation" # I
.param p5, "isIncoming" # Z

.prologue
invoke-direct / range {p0 .. p5}, Lcom / android / incallui / ContactInfoCache; ->buildEntry (Landroid / content / Context; Ljava / lang / String; Lcom / android / incallui / CallerInfo; IZ) Lcom / android / incallui / ContactInfoCache $ ContactCacheEntry;

move-result-object v0

return object v0
.end method

.method static synthetic -wrap2 (Lcom / android / incallui / ContactInfoCache; Lcom / android / incallui / Call; Lcom / android / incallui / CallerInfo; ZZ) V
.locals 0
.param p1, "call" # Lcom / android / incallui / Call;
.param p2, "callerInfo" # Lcom / android / incallui / CallerInfo;
.param p3, "isIncoming" # Z
.param p4, "didLocalLookup" # Z

.prologue
invoke-direct {p0, p1, p2, p3, p4}, Lcom / android / incallui / ContactInfoCache; ->findInfoQueryComplete (Lcom / android / incallui / Call; Lcom / android / incallui / CallerInfo; ZZ) V

return-void
.end method

.method static constructor<clinit>() V
.locals 1

.prologue
.line 60
const-class v0, Lcom / android / incallui / ContactInfoCache;

invoke-virtual {v0}, Ljava / lang / Class; ->getSimpleName () Ljava / lang / String;

move-result-object v0

sput-object v0, Lcom / android / incallui / ContactInfoCache; ->TAG: Ljava / lang / String;

.line 69
const / 4 v0, 0x0

sput-object v0, Lcom / android / incallui / ContactInfoCache; ->sCache: Lcom / android / incallui / ContactInfoCache;

.line 58
return-void
.end method

.method private constructor<init>(Landroid / content / Context;) V
.locals 1
.param p1, "context" # Landroid / content / Context;

.prologue
.line 88
invoke-direct {p0}, Ljava / lang / Object; -><init>() V

.line 65
invoke-static {}, Lcom / google / common / collect / Maps; ->newHashMap () Ljava / util / HashMap;

move-result-object v0

iput-object v0, p0, Lcom / android / incallui / ContactInfoCache; ->mInfoMap: Ljava / util / HashMap;

.line 66
invoke-static {}, Lcom / google / common / collect / Maps; ->newHashMap () Ljava / util / HashMap;

move-result-object v0

iput-object v0, p0, Lcom / android / incallui / ContactInfoCache; ->mCallBacks: Ljava / util / HashMap;

.line 67
invoke-static {}, Lcom / google / common / collect / Maps; ->newHashMap () Ljava / util / HashMap;

move-result-object v0

iput-object v0, p0, Lcom / android / incallui / ContactInfoCache; ->mTelocationMap: Ljava / util / HashMap;

.line 79
const / 4 v0, 0x0

iput-object v0, p0, Lcom / android / incallui / ContactInfoCache; ->mYellowPageCallBacks: Ljava / util / Set;

.line 89
iput-object p1, p0, Lcom / android / incallui / ContactInfoCache; ->mContext: Landroid / content / Context;

.line 90
invoke-static {p1}, Lcom / android / incalluibind / ServiceFactory; ->newPhoneNumberService (Landroid / content / Context;) Lcom / android / incallui / service / PhoneNumberService;

move-result-object v0

iput-object v0, p0, Lcom / android / incallui / ContactInfoCache; ->mPhoneNumberService: Lcom / android / incallui / service / PhoneNumberService;

.line 88
return-void
.end method

.method public static buildCacheEntryFromCall (Landroid / content / Context; Lcom / android / incallui / Call; Z) Lcom / android / incallui / ContactInfoCache $ ContactCacheEntry;
.locals 3
.param p0, "context" # Landroid / content / Context;
.param p1, "call" # Lcom / android / incallui / Call;
.param p2, "isIncoming" # Z

.prologue
.line 99
new-instance v0, Lcom / android / incallui / ContactInfoCache $ ContactCacheEntry;

invoke-direct {v0}, Lcom / android / incallui / ContactInfoCache $ ContactCacheEntry; -><init>() V

.line 102
.local v0, "entry": Lcom / android / incallui / ContactInfoCache $ ContactCacheEntry;
invoke-static {p0, p1}, Lcom / android / incallui / CallerInfoUtils; ->buildCallerInfo (Landroid / content / Context; Lcom / android / incallui / Call;) Lcom / android / incallui / CallerInfo;

move-result-object v1

.line 103
.local v1, "info": Lcom / android / incallui / CallerInfo;
invoke-virtual {p1}, Lcom / android / incallui / Call; ->getNumberPresentation () I

move-result v2

invoke-static {p0, v1, v0, v2, p2}, Lcom / android / incallui / ContactInfoCache; ->populateCacheEntry (Landroid / content / Context; Lcom / android / incallui / CallerInfo; Lcom / android / incallui / ContactInfoCache $ ContactCacheEntry; IZ) V

.line 105
return object v0
.end method

.method private buildEntry (Landroid / content / Context; Ljava / lang / String; Lcom / android / incallui / CallerInfo; IZ) Lcom / android / incallui / ContactInfoCache $ ContactCacheEntry;
.locals 7
.param p1, "context" # Landroid / content / Context;
.param p2, "callId" # Ljava / lang / String;
.param p3, "info" # Lcom / android / incallui / CallerInfo;
.param p4, "presentation" # I
.param p5, "isIncoming" # Z

.prologue
const / 4 v6, 0x0

.line 646
const / 4 v1,0x0

.line 648
.local v1, "photo": Landroid / graphics / drawable / Drawable;
iget-object v2, p3, Lcom / android / incallui / CallerInfo; ->phoneNumber: Ljava / lang / String;

invoke-virtual {p0, v2}, Lcom / android / incallui / ContactInfoCache; ->getTelocation (Ljava / lang / String;) Ljava / lang / String;

move-result-object v2

iput-object v2, p3, Lcom / android / incallui / CallerInfo; ->geoDescription: Ljava / lang / String;

.line 649
new-instance v0, Lcom / android / incallui / ContactInfoCache $ ContactCacheEntry;

invoke-direct {v0}, Lcom / android / incallui / ContactInfoCache $ ContactCacheEntry; -><init>() V

.line 650
.local v0, "cce": Lcom / android / incallui / ContactInfoCache $ ContactCacheEntry;
invoke-static {p1, p3, v0, p4, p5}, Lcom / android / incallui / ContactInfoCache; ->populateCacheEntry (Landroid / content / Context; Lcom / android / incallui / CallerInfo; Lcom / android / incallui / ContactInfoCache $ ContactCacheEntry; IZ) V

.line 653
iget v2, p3, Lcom / android / incallui / CallerInfo; ->photoResource: I

if-eqz v2,: cond_1

.line 654
invoke-virtual {p1}, Landroid / content / Context; ->getResources () Landroid / content / res / Resources;

move-result-object v2

iget v3, p3, Lcom / android / incallui / CallerInfo; ->photoResource: I

invoke-virtual {v2, v3}, Landroid / content / res / Resources; ->getDrawable (I) Landroid / graphics / drawable / Drawable;

move-result-object v1

.line 667
.end local v1 # "photo": Landroid / graphics / drawable / Drawable;
: goto_0
iget-object v2, p3, Lcom / android / incallui / CallerInfo; ->lookupKeyOrNull: Ljava / lang / String;

if-eqz v2,: cond_0

iget-wide v2, p3, Lcom / android / incallui / CallerInfo; ->contactIdOrZero: J

const-wide / 16 v4, 0x0

cmp-long v2, v2, v4

if-nez v2,: cond_5

.line 668
: cond_0
sget-object v2, Lcom / android / incallui / ContactInfoCache; ->TAG: Ljava / lang / String;

const-string / jumbo v3, "lookup key is null or contact ID is 0. Don \ 't create a lookup uri."

invoke-static {v2, v3}, Lcom / android / incallui / Log; ->v (Ljava / lang / Object; Ljava / lang / String;) V

.line 669
iput-object v6, v0, Lcom / android / incallui / ContactInfoCache $ ContactCacheEntry; ->lookupUri: Landroid / net / Uri;

.line 674
: goto_1
iput-object v1, v0, Lcom / android / incallui / ContactInfoCache $ ContactCacheEntry; ->photo: Landroid / graphics / drawable / Drawable;

.line 675
iget-object v2, p3, Lcom / android / incallui / CallerInfo; ->lookupKeyOrNull: Ljava / lang / String;

iput-object v2, v0, Lcom / android / incallui / ContactInfoCache $ ContactCacheEntry; ->lookupKey: Ljava / lang / String;

.line 676
iput-object p2, v0, Lcom / android / incallui / ContactInfoCache $ ContactCacheEntry; ->callId: Ljava / lang / String;

.line 678
return object v0

.line 655
.restart local v1 # "photo": Landroid / graphics / drawable / Drawable;
: cond_1
iget-boolean v2, p3, Lcom / android / incallui / CallerInfo; ->isCachedPhotoCurrent: Z

if-eqz v2,: cond_3

.line 656
iget-object v2, p3, Lcom / android / incallui / CallerInfo; ->cachedPhoto: Landroid / graphics / drawable / Drawable;

if-eqz v2,: cond_2

.line 657
iget-object v1, p3, Lcom / android / incallui / CallerInfo; ->cachedPhoto: Landroid / graphics / drawable / Drawable;

.local v1, "photo": Landroid / graphics / drawable / Drawable;
goto: goto_0

.line 659
.local v1, "photo": Landroid / graphics / drawable / Drawable;
: cond_2
const / 4 v1,0x0

goto: goto_0

.line 661
: cond_3
iget-object v2, p3, Lcom / android / incallui / CallerInfo; ->contactDisplayPhotoUri: Landroid / net / Uri;

if-nez v2,: cond_4

.line 662
const / 4 v1,0x0

goto: goto_0

.line 664
: cond_4
iget-object v2, p3, Lcom / android / incallui / CallerInfo; ->contactDisplayPhotoUri: Landroid / net / Uri;

iput-object v2, v0, Lcom / android / incallui / ContactInfoCache $ ContactCacheEntry; ->displayPhotoUri: Landroid / net / Uri;

goto: goto_0

.line 671
.end local v1 # "photo": Landroid / graphics / drawable / Drawable;
: cond_5
iget-wide v2, p3, Lcom / android / incallui / CallerInfo; ->contactIdOrZero: J

iget-object v4, p3, Lcom / android / incallui / CallerInfo; ->lookupKeyOrNull: Ljava / lang / String;

invoke-static {v2, v3, v4}, Landroid / provider / ContactsContract $ Contacts; ->getLookupUri (JLjava / lang / String;) Landroid / net / Uri;

move-result-object v2

iput-object v2, v0, Lcom / android / incallui / ContactInfoCache $ ContactCacheEntry; ->lookupUri: Landroid / net / Uri;

goto: goto_1
.end method

.method private clearCallbacks (Ljava / lang / String;) V
.locals 1
.param p1, "callId" # Ljava / lang / String;

.prologue
.line 842
iget-object v0, p0, Lcom / android / incallui / ContactInfoCache; ->mCallBacks: Ljava / util / HashMap;

invoke-virtual {v0, p1}, Ljava / util / HashMap; ->remove (Ljava / lang / Object;) Ljava / lang / Object;

.line 841
return-void
.end method

.method private findInfoQueryComplete (Lcom / android / incallui / Call; Lcom / android / incallui / CallerInfo; ZZ) V
.locals 19
.param p1, "call" # Lcom / android / incallui / Call;
.param p2, "callerInfo" # Lcom / android / incallui / CallerInfo;
.param p3, "isIncoming" # Z
.param p4, "didLocalLookup" # Z

.prologue
.line 422
invoke-virtual / range {p1 .. p1}, Lcom / android / incallui / Call; ->getId () Ljava / lang / String;

move-result-object v6

.line 423
.local v6, "callId": Ljava / lang / String;
invoke-virtual / range {p1 .. p1}, Lcom / android / incallui / Call; ->getNumberPresentation () I

move-result v8

.line 424
.local v8, "presentationMode": I
move-object / from16 v0, p2

iget-boolean v4, v0, Lcom / android / incallui / CallerInfo; ->contactExists: Z

if-nez v4,: cond_0

invoke-virtual / range {p2 .. p2}, Lcom / android / incallui / CallerInfo; ->isEmergencyNumber () Z

move-result v4

if-nez v4,: cond_0

.line 425
invoke-virtual / range {p2 .. p2}, Lcom / android / incallui / CallerInfo; ->isVoiceMailNumber () Z

move-result v4

.line 424
if-eqz v4,: cond_1

.line 426
: cond_0
const / 4 v8, 0x1

.line 429
: cond_1
move-object / from16 v0, p0

iget-object v4, v0, Lcom / android / incallui / ContactInfoCache; ->mInfoMap: Ljava / util / HashMap;

invoke-virtual {v4, v6}, Ljava / util / HashMap; ->get (Ljava / lang / Object;) Ljava / lang / Object;

move-result-object v16

check-cast v16, Lcom / android / incallui / ContactInfoCache $ ContactCacheEntry;

.line 435
.local v16, "cacheEntry": Lcom / android / incallui / ContactInfoCache $ ContactCacheEntry;
if-eqz v16,: cond_6

if-eqz p4,: cond_6

move-object / from16 v0, p2

iget-boolean v4, v0, Lcom / android / incallui / CallerInfo; ->contactExists: Z

if-nez v4,: cond_6

.line 436
move-object / from16 v0, v16

iget-object v4, v0, Lcom / android / incallui / ContactInfoCache $ ContactCacheEntry; ->name: Ljava / lang / String;

invoke-static {v4}, Landroid / text / TextUtils; ->isEmpty (Ljava / lang / CharSequence;) Z

move-result v4

if-nez v4,: cond_6

move-object / from16 v0, v16

iget-object v4, v0, Lcom / android / incallui / ContactInfoCache $ ContactCacheEntry; ->number: Ljava / lang / String;

move-object / from16 v0, p2

iget-object v5, v0, Lcom / android / incallui / CallerInfo; ->phoneNumber: Ljava / lang / String;

invoke-static {v4, v5}, Landroid / text / TextUtils; ->equals (Ljava / lang / CharSequence; Ljava / lang / CharSequence;) Z

move-result v4

if-eqz v4,: cond_6

.line 441
: goto_0
sget-object v4, Lcom / android / incallui / ContactInfoCache; ->TAG: Ljava / lang / String;

new-instance v5, Ljava / lang / StringBuilder;

invoke-direct {v5}, Ljava / lang / StringBuilder; -><init>() V

const-string / jumbo v7, "Query contact info:"

invoke-virtual {v5, v7}, Ljava / lang / StringBuilder; ->append (Ljava / lang / String;) Ljava / lang / StringBuilder;

move-result-object v5

move-object / from16 v0, v16

invoke-virtual {v5, v0}, Ljava / lang / StringBuilder; ->append (Ljava / lang / Object;) Ljava / lang / StringBuilder;

move-result-object v5

const-string / jumbo v7, "didLocalLookup:"

invoke-virtual {v5, v7}, Ljava / lang / StringBuilder; ->append (Ljava / lang / String;) Ljava / lang / StringBuilder;

move-result-object v5

move / from16 v0, p4

invoke-virtual {v5, v0}, Ljava / lang / StringBuilder; ->append (Z) Ljava / lang / StringBuilder;

move-result-object v5

invoke-virtual {v5}, Ljava / lang / StringBuilder; ->toString () Ljava / lang / String;

move-result-object v5

invoke-static {v4, v5}, Lcom / android / incallui / Log; ->i (Ljava / lang / String; Ljava / lang / String;) V

.line 442
if-eqz p4,: cond_2

move-object / from16 v0, p2

iget-boolean v4, v0, Lcom / android / incallui / CallerInfo; ->contactExists: Z

if-nez v4,: cond_2

invoke-virtual / range {p2 .. p2}, Lcom / android / incallui / CallerInfo; ->isEmergencyNumber () Z

move-result v4

if-eqz v4,: cond_3

.line 443
: cond_2
move-object / from16 v0, p0

move-object / from16 v1, v16

invoke-direct {v0, v6, v1}, Lcom / android / incallui / ContactInfoCache; ->sendInfoNotifications (Ljava / lang / String; Lcom / android / incallui / ContactInfoCache $ ContactCacheEntry;) V

.line 446
: cond_3
if-eqz p4,: cond_4

.line 447
move-object / from16 v0, p2

iget-boolean v4, v0, Lcom / android / incallui / CallerInfo; ->contactExists: Z

if-nez v4,: cond_4

.line 448
move-object / from16 v0, p2

iget v4, v0, Lcom / android / incallui / CallerInfo; ->queryState: I

if-nez v4,: cond_4

.line 449
move-object / from16 v0, p0

iget-object v4, v0, Lcom / android / incallui / ContactInfoCache; ->mCallBacks: Ljava / util / HashMap;

invoke-virtual {v4, v6}, Ljava / util / HashMap; ->get (Ljava / lang / Object;) Ljava / lang / Object;

move-result-object v17

check-cast v17, Ljava / util / Set;

.line 450
.local v17, "callback": Ljava / util / Set ;, "Ljava / util / Set<Lcom / android / incallui / ContactInfoCache $ ContactInfoCacheCallback;>;"
sget-object v4, Lcom / android / incallui / ContactInfoCache; ->TAG: Ljava / lang / String;

const-string / jumbo v5, "YellowPage: query yellowpage info."

invoke-static {v4, v5}, Lcom / android / incallui / Log; ->i (Ljava / lang / String; Ljava / lang / String;) V

.line 451
move-object / from16 v0, p0

iget-object v9, v0, Lcom / android / incallui / ContactInfoCache; ->mContext: Landroid / content / Context;

invoke-virtual / range {p1 .. p1}, Lcom / android / incallui / Call; ->getNumber () Ljava / lang / String;

move-result-object v10

.line 453
new-instance v13, Lcom / android / incallui / ContactInfoCache $ FindYellowPageInfoCallBack;

move-object / from16 v0, p0

move-object / from16 v1, p1

move / from16 v2, p3

move-object / from16 v3, v17

invoke-direct {v13, v0, v1, v2, v3}, Lcom / android / incallui / ContactInfoCache $ FindYellowPageInfoCallBack; -><init>(Lcom / android / incallui / ContactInfoCache; Lcom / android / incallui / Call; ZLjava / util / Set;) V

.line 454
const / 16 v14, 0xa

move-object / from16 v11, p2

move / from16 v12, p3

move-object / from16 v15, p1

.line 451
invoke-static / range {v9 .. v15}, Lcom / android / incallui / CallerInfo; ->doYellowPageQuery (Landroid / content / Context; Ljava / lang / String; Lcom / android / incallui / CallerInfo; ZLcom / android / incallui / CallerInfoAsyncQuery $ OnQueryCompleteListener; ILjava / lang / Object;) Lcom / android / incallui / CallerInfo;

move-result-object p2

.line 458
.end local v17 # "callback": Ljava / util / Set ;, "Ljava / util / Set<Lcom / android / incallui / ContactInfoCache $ ContactInfoCacheCallback;>;"
: cond_4
if-eqz p4,: cond_5

.line 462
move-object / from16 v0, p2

iget-boolean v4, v0, Lcom / android / incallui / CallerInfo; ->contactExists: Z

if-nez v4,: cond_7

move-object / from16 v0, p0

iget-object v4, v0, Lcom / android / incallui / ContactInfoCache; ->mPhoneNumberService: Lcom / android / incallui / service / PhoneNumberService;

if-eqz v4,: cond_7

.line 463
sget-object v4, Lcom / android / incallui / ContactInfoCache; ->TAG: Ljava / lang / String;

const-string / jumbo v5, "Contact lookup. Local contacts miss, checking remote"

invoke-static {v4, v5}, Lcom / android / incallui / Log; ->d (Ljava / lang / String; Ljava / lang / String;) V

.line 464
new-instance v18, Lcom / android / incallui / ContactInfoCache $ PhoneNumberServiceListener;

move-object / from16 v0, v18

move-object / from16 v1, p0

invoke-direct {v0, v1, v6}, Lcom / android / incallui / ContactInfoCache $ PhoneNumberServiceListener; -><init>(Lcom / android / incallui / ContactInfoCache; Ljava / lang / String;) V

.line 465
.local v18, "listener": Lcom / android / incallui / ContactInfoCache $ PhoneNumberServiceListener;
move-object / from16 v0, p0

iget-object v4, v0, Lcom / android / incallui / ContactInfoCache; ->mPhoneNumberService: Lcom / android / incallui / service / PhoneNumberService;

move-object / from16 v0, v16

iget-object v5, v0, Lcom / android / incallui / ContactInfoCache $ ContactCacheEntry; ->number: Ljava / lang / String;

move-object / from16 v0, v18

move-object / from16 v1, v18

move / from16 v2, p3

invoke-interface {v4, v5, v0, v1, v2}, Lcom / android / incallui / service / PhoneNumberService; ->getPhoneNumberInfo (Ljava / lang / String; Lcom / android / incallui / service / PhoneNumberService $ NumberLookupListener; Lcom / android / incallui / service / PhoneNumberService $ ImageLookupListener; Z) V

.line 421
.end local v18 # "listener": Lcom / android / incallui / ContactInfoCache $ PhoneNumberServiceListener;
: cond_5
: goto_1
return-void

.line 437
: cond_6
move-object / from16 v0, p0

iget-object v5, v0, Lcom / android / incallui / ContactInfoCache; ->mContext: Landroid / content / Context;

move-object / from16 v4, p0

move-object / from16 v7, p2

move / from16 v9, p3

invoke-direct / range {v4 .. v9}, Lcom / android / incallui / ContactInfoCache; ->buildEntry (Landroid / content / Context; Ljava / lang / String; Lcom / android / incallui / CallerInfo; IZ) Lcom / android / incallui / ContactInfoCache $ ContactCacheEntry;

move-result-object v16

.line 438
move-object / from16 v0, p0

iget-object v4, v0, Lcom / android / incallui / ContactInfoCache; ->mInfoMap: Ljava / util / HashMap;

move-object / from16 v0, v16

invoke-virtual {v4, v6, v0}, Ljava / util / HashMap; ->put (Ljava / lang / Object; Ljava / lang / Object;) Ljava / lang / Object;

goto / 16: goto_0

.line 467
: cond_7
if-eqz v16,: cond_8

move-object / from16 v0, v16

iget-object v4, v0, Lcom / android / incallui / ContactInfoCache $ ContactCacheEntry; ->displayPhotoUri: Landroid / net / Uri;

if-eqz v4,: cond_8

.line 468
sget-object v4, Lcom / android / incallui / ContactInfoCache; ->TAG: Ljava / lang / String;

new-instance v5, Ljava / lang / StringBuilder;

invoke-direct {v5}, Ljava / lang / StringBuilder; -><init>() V

const-string / jumbo v7, "Contact lookup. Local contact found, starting image load with callId ="

invoke-virtual {v5, v7}, Ljava / lang / StringBuilder; ->append (Ljava / lang / String;) Ljava / lang / StringBuilder;

move-result-object v5

invoke-virtual {v5, v6}, Ljava / lang / StringBuilder; ->append (Ljava / lang / String;) Ljava / lang / StringBuilder;

move-result-object v5

invoke-virtual {v5}, Ljava / lang / StringBuilder; ->toString () Ljava / lang / String;

move-result-object v5

invoke-static {v4, v5}, Lcom / android / incallui / Log; ->i (Ljava / lang / String; Ljava / lang / String;) V

.line 472
move-object / from16 v0, p0

iget-object v4, v0, Lcom / android / incallui / ContactInfoCache; ->mContext: Landroid / content / Context;

move-object / from16 v0, v16

iget-object v5, v0, Lcom / android / incallui / ContactInfoCache $ ContactCacheEntry; ->displayPhotoUri: Landroid / net / Uri;

.line 471
const / 4 v7, 0x0

move-object / from16 v0, p0

invoke-static {v7, v4, v5, v0, v6}, Lcom / android / incallui / ContactsAsyncHelper; ->startObtainPhotoAsync (ILandroid / content / Context; Landroid / net / Uri; Lcom / android / incallui / ContactsAsyncHelper $ OnImageLoadCompleteListener; Ljava / lang / Object;) V

goto: goto_1

.line 474
: cond_8
move-object / from16 v0, p2

iget-boolean v4, v0, Lcom / android / incallui / CallerInfo; ->contactExists: Z

if-eqz v4,: cond_a

.line 475
sget-object v4, Lcom / android / incallui / ContactInfoCache; ->TAG: Ljava / lang / String;

const-string / jumbo v5, "Contact lookup done. Local contact found, no image."

invoke-static {v4, v5}, Lcom / android / incallui / Log; ->d (Ljava / lang / String; Ljava / lang / String;) V

.line 487
: cond_9
: goto_2
move-object / from16 v0, p0

invoke-direct {v0, v6}, Lcom / android / incallui / ContactInfoCache; ->clearCallbacks (Ljava / lang / String;) V

goto: goto_1

.line 477
: cond_a
sget-object v4, Lcom / android / incallui / ContactInfoCache; ->TAG: Ljava / lang / String;

const-string / jumbo v5, "Contact lookup done. Local contact not found and no remote lookup service available."

invoke-static {v4, v5}, Lcom / android / incallui / Log; ->d (Ljava / lang / String; Ljava / lang / String;) V

.line 482
if-eqz v16,: cond_9

move-object / from16 v0, v16

iget-boolean v4, v0, Lcom / android / incallui / ContactInfoCache $ ContactCacheEntry; ->isEmergencyNumber: Z

if-eqz v4,: cond_9

.line 483
const-string / jumbo v4, "sendImageNotifications for emergency number"

move-object / from16 v0, p0

invoke-static {v0, v4}, Lcom / android / incallui / Log; ->i (Ljava / lang / Object; Ljava / lang / String;) V

.line 484
move-object / from16 v0, p0

move-object / from16 v1, v16

invoke-direct {v0, v6, v1}, Lcom / android / incallui / ContactInfoCache; ->sendImageNotifications (Ljava / lang / String; Lcom / android / incallui / ContactInfoCache $ ContactCacheEntry;) V

goto: goto_2
.end method

.method public static declared-synchronized getInstance () Lcom / android / incallui / ContactInfoCache;
.locals 3

.prologue
const-class v1, Lcom / android / incallui / ContactInfoCache;

monitor-enter v1

.line 82
: try_start_0
sget-object v0, Lcom / android / incallui / ContactInfoCache; ->sCache: Lcom / android / incallui / ContactInfoCache;

if-nez v0,: cond_0

.line 83
new-instance v0, Lcom / android / incallui / ContactInfoCache;

invoke-static {}, Lcom / android / incallui / InCallApp; ->getInstance () Lcom / android / incallui / InCallApp;

move-result-object v2

invoke-direct {v0, v2}, Lcom / android / incallui / ContactInfoCache; -><init>(Landroid / content / Context;) V

sput-object v0, Lcom / android / incallui / ContactInfoCache; ->sCache: Lcom / android / incallui / ContactInfoCache;

.line 85
: cond_0
sget-object v0, Lcom / android / incallui / ContactInfoCache; ->sCache: Lcom / android / incallui / ContactInfoCache;
: try_end_0
.catchall {: try_start_0 ..: try_end_0}: catchall_0

monitor-exit v1

return object v0

: catchall_0
move-exception v0

monitor-exit v1

throw v0
.end method

.method private static getPresentationString (Landroid / content / Context; I) Ljava / lang / String;
.locals 2
.param p0, "context" # Landroid / content / Context;
.param p1, "presentation" # I

.prologue
.line 849
const v1, 0x7f0c000c

invoke-virtual {p0, v1}, Landroid / content / Context; ->getString (I) Ljava / lang / String;

move-result-object v0

.line 850
.local v0, "name": Ljava / lang / String;
const / 4 v1,0x2

if-ne p1, v1,: cond_1

.line 851
const v1, 0x7f0c000d

invoke-virtual {p0, v1}, Landroid / content / Context; ->getString (I) Ljava / lang / String;

move-result-object v0

.line 855
: cond_0
: goto_0
return object v0

.line 852
: cond_1
const / 4 v1,0x4

if-ne p1, v1,: cond_0

.line 853
const v1, 0x7f0c000e

invoke-virtual {p0, v1}, Landroid / content / Context; ->getString (I) Ljava / lang / String;

move-result-object v0

goto: goto_0
.end method

.method public static isBigPhoto (Landroid / graphics / drawable / Drawable;) Z
.locals 5
.param p0, "photo" # Landroid / graphics / drawable / Drawable;

.prologue
const / 4 v2, 0x0

.line 613
if-eqz p0,: cond_1

instance-of v3, p0, Landroid / graphics / drawable / BitmapDrawable;

if-eqz v3,: cond_1

move-object v1, p0

.line 616
check-cast v1, Landroid / graphics / drawable / BitmapDrawable;

.line 617
.local v1, "bitmapDrawable": Landroid / graphics / drawable / BitmapDrawable;
invoke-virtual {v1}, Landroid / graphics / drawable / BitmapDrawable; ->getBitmap () Landroid / graphics / Bitmap;

move-result-object v0

.line 618
.local v0, "bitmap": Landroid / graphics / Bitmap;
if-eqz v0,: cond_0

invoke-virtual {v0}, Landroid / graphics / Bitmap; ->getWidth () I

move-result v3

const / 16 v4, 0x9b

if-le v3, v4,: cond_0

const / 4 v2, 0x1

: cond_0
return v2

.line 614
.end local v0 # "bitmap": Landroid / graphics / Bitmap;
.end local v1 # "bitmapDrawable": Landroid / graphics / drawable / BitmapDrawable;
: cond_1
return v2
.end method

.method public static populateCacheEntry (Landroid / content / Context; Lcom / android / incallui / CallerInfo; Lcom / android / incallui / ContactInfoCache $ ContactCacheEntry; IZ) V
.locals 9
.param p0, "context" # Landroid / content / Context;
.param p1, "info" # Lcom / android / incallui / CallerInfo;
.param p2, "cce" # Lcom / android / incallui / ContactInfoCache $ ContactCacheEntry;
.param p3, "presentation" # I
.param p4, "isIncoming" # Z

.prologue
const / 4 v7, 0x1

.line 686
invoke-static {p1}, Lcom / google / common / base / Preconditions; ->checkNotNull (Ljava / lang / Object;) Ljava / lang / Object;

.line 687
const / 4 v1,0x0

.line 688
.local v1, "displayName": Ljava / lang / String;
const / 4 v2, 0x0

.line 689
.local v2, "displayNumber": Ljava / lang / String;
const / 4 v0, 0x0

.line 690
.local v0, "displayLocation": Ljava / lang / String;
const / 4 v4, 0x0

.line 691
.local v4, "label": Ljava / lang / String;
const / 4 v3, 0x0

.line 715
.local v3, "isSipCall": Z
iget-object v5, p1, Lcom / android / incallui / CallerInfo; ->phoneNumber: Ljava / lang / String;

.line 717
.local v5, "number": Ljava / lang / String;
invoke-static {v5}, Landroid / text / TextUtils; ->isEmpty (Ljava / lang / CharSequence;) Z

move-result v6

if-nez v6,: cond_0

.line 718
invoke-static {v5}, Landroid / telephony / PhoneNumberUtils; ->isUriNumber (Ljava / lang / String;) Z

move-result v3

.line 719
.local v3, "isSipCall": Z
const-string / jumbo v6, "sip:"

invoke-virtual {v5, v6}, Ljava / lang / String; ->startsWith (Ljava / lang / String;) Z

move-result v6

if-eqz v6,: cond_1

.line 720
const / 4 v6, 0x4

invoke-virtual {v5, v6}, Ljava / lang / String; ->substring (I) Ljava / lang / String;

move-result-object v5

.line 729
.end local v3 # "isSipCall": Z
: cond_0
: goto_0
iget-object v6, p1, Lcom / android / incallui / CallerInfo; ->name: Ljava / lang / String;

invoke-static {v6}, Landroid / text / TextUtils; ->isEmpty (Ljava / lang / CharSequence;) Z

move-result v6

if-eqz v6,: cond_6

.line 735
invoke-static {v5}, Landroid / text / TextUtils; ->isEmpty (Ljava / lang / CharSequence;) Z

move-result v6

if-eqz v6,: cond_2

.line 738
invoke-static {p0, p3}, Lcom / android / incallui / ContactInfoCache; ->getPresentationString (Landroid / content / Context; I) Ljava / lang / String;

move-result-object v1

.line 739
.local v1, "displayName": Ljava / lang / String;
sget-object v6, Lcom / android / incallui / ContactInfoCache; ->TAG: Ljava / lang / String;

new-instance v7, Ljava / lang / StringBuilder;

invoke-direct {v7}, Ljava / lang / StringBuilder; -><init>() V

const-string / jumbo v8, "==>no name * or * number! displayName = "

invoke-virtual {v7, v8}, Ljava / lang / StringBuilder; ->append (Ljava / lang / String;) Ljava / lang / StringBuilder;

move-result-object v7

invoke-static {v1}, Lcom / android / incallui / util / MoreStrings; ->toSafeString (Ljava / lang / String;) Ljava / lang / String;

move-result-object v8

invoke-virtual {v7, v8}, Ljava / lang / StringBuilder; ->append (Ljava / lang / String;) Ljava / lang / StringBuilder;

move-result-object v7

invoke-virtual {v7}, Ljava / lang / StringBuilder; ->toString () Ljava / lang / String;

move-result-object v7

invoke-static {v6, v7}, Lcom / android / incallui / Log; ->d (Ljava / lang / String; Ljava / lang / String;) V

.line 795
.end local v0 # "displayLocation": Ljava / lang / String;
.end local v1 # "displayName": Ljava / lang / String;
.end local v2 # "displayNumber": Ljava / lang / String;
.end local v4 # "label": Ljava / lang / String;
: goto_1
if-eqz v3,: cond_8

.line 796
invoke-virtual {p0}, Landroid / content / Context; ->getResources () Landroid / content / res / Resources;

move-result-object v6

const v7, 0x7f0c0045

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

move-result-object v0

.line 801
.local v0, "displayLocation": Ljava / lang / String;
: goto_2
iput-object v1, p2, Lcom / android / incallui / ContactInfoCache $ ContactCacheEntry; ->name: Ljava / lang / String;

.line 802
iput-object v2, p2, Lcom / android / incallui / ContactInfoCache $ ContactCacheEntry; ->number: Ljava / lang / String;

.line 803
iput-object v0, p2, Lcom / android / incallui / ContactInfoCache $ ContactCacheEntry; ->location: Ljava / lang / String;

.line 804
iput-object v4, p2, Lcom / android / incallui / ContactInfoCache $ ContactCacheEntry; ->label: Ljava / lang / String;

.line 805
iput-boolean v3, p2, Lcom / android / incallui / ContactInfoCache $ ContactCacheEntry; ->isSipCall: Z

.line 806
iget-object v6, p1, Lcom / android / incallui / CallerInfo; ->company: Ljava / lang / String;

iput-object v6, p2, Lcom / android / incallui / ContactInfoCache $ ContactCacheEntry; ->company: Ljava / lang / String;

.line 807
iget-object v6, p1, Lcom / android / incallui / CallerInfo; ->yellowPagePhone: Lmiui / yellowpage / YellowPagePhone;

iput-object v6, p2, Lcom / android / incallui / ContactInfoCache $ ContactCacheEntry; ->yellowPagePhone: Lmiui / yellowpage / YellowPagePhone;

.line 808
iget-boolean v6, p1, Lcom / android / incallui / CallerInfo; ->contactExists: Z

iput-boolean v6, p2, Lcom / android / incallui / ContactInfoCache $ ContactCacheEntry; ->contactExists: Z

.line 809
invoke-virtual {p1}, Lcom / android / incallui / CallerInfo; ->isEmergencyNumber () Z

move-result v6

iput-boolean v6, p2, Lcom / android / incallui / ContactInfoCache $ ContactCacheEntry; ->isEmergencyNumber: Z

.line 810
invoke-virtual {p1}, Lcom / android / incallui / CallerInfo; ->isVoiceMailNumber () Z

move-result v6

iput-boolean v6, p2, Lcom / android / incallui / ContactInfoCache $ ContactCacheEntry; ->isVioceMailNumber: Z

.line 811
iget-object v6, p1, Lcom / android / incallui / CallerInfo; ->miProfile: Lmiui / provider / MiProfileResult;

iput-object v6, p2, Lcom / android / incallui / ContactInfoCache $ ContactCacheEntry; ->miProfile: Lmiui / provider / MiProfileResult;

.line 685
return-void

.line 723
.local v0, "displayLocation": Ljava / lang / String;
.local v1, "displayName": Ljava / lang / String;
.restart local v2 # "displayNumber": Ljava / lang / String;
.restart local v3 # "isSipCall": Z
.restart local v4 # "label": Ljava / lang / String;
: cond_1
invoke-virtual {p1}, Lcom / android / incallui / CallerInfo; ->isEmergencyNumber () Z

move-result v6

if-nez v6,: cond_0

if-nez v3,: cond_0

invoke-virtual {p1}, Lcom / android / incallui / CallerInfo; ->isVoiceMailNumber () Z

move-result v6

if-nez v6,: cond_0

.line 724
invoke-static {v5}, Lmiui / telephony / PhoneNumberUtils; ->normalizeNumber (Ljava / lang / String;) Ljava / lang / String;

move-result-object v5

goto: goto_0

.line 740
.end local v3 # "isSipCall": Z
: cond_2
if-eq p3, v7,: cond_3

.line 744
invoke-static {p0, p3}, Lcom / android / incallui / ContactInfoCache; ->getPresentationString (Landroid / content / Context; I) Ljava / lang / String;

move-result-object v1

.line 745
.local v1, "displayName": Ljava / lang / String;
sget-object v6, Lcom / android / incallui / ContactInfoCache; ->TAG: Ljava / lang / String;

new-instance v7, Ljava / lang / StringBuilder;

invoke-direct {v7}, Ljava / lang / StringBuilder; -><init>() V

const-string / jumbo v8, "==>presentation not allowed! displayName = "

invoke-virtual {v7, v8}, Ljava / lang / StringBuilder; ->append (Ljava / lang / String;) Ljava / lang / StringBuilder;

move-result-object v7

invoke-static {v1}, Lcom / android / incallui / util / MoreStrings; ->toSafeString (Ljava / lang / String;) Ljava / lang / String;

move-result-object v8

invoke-virtual {v7, v8}, Ljava / lang / StringBuilder; ->append (Ljava / lang / String;) Ljava / lang / StringBuilder;

move-result-object v7

invoke-virtual {v7}, Ljava / lang / StringBuilder; ->toString () Ljava / lang / String;

move-result-object v7

invoke-static {v6, v7}, Lcom / android / incallui / Log; ->d (Ljava / lang / String; Ljava / lang / String;) V

goto: goto_1

.line 746
.local v1, "displayName": Ljava / lang / String;
: cond_3
iget-object v6, p1, Lcom / android / incallui / CallerInfo; ->cnapName: Ljava / lang / String;

invoke-static {v6}, Landroid / text / TextUtils; ->isEmpty (Ljava / lang / CharSequence;) Z

move-result v6

if-nez v6,: cond_4

.line 748
iget-object v1, p1, Lcom / android / incallui / CallerInfo; ->cnapName: Ljava / lang / String;

.line 749
.local v1, "displayName": Ljava / lang / String;
iget-object v6, p1, Lcom / android / incallui / CallerInfo; ->cnapName: Ljava / lang / String;

iput-object v6, p1, Lcom / android / incallui / CallerInfo; ->name: Ljava / lang / String;

.line 750
move-object v2, v5

.line 751
.local v2, "displayNumber": Ljava / lang / String;
sget-object v6, Lcom / android / incallui / ContactInfoCache; ->TAG: Ljava / lang / String;

new-instance v7, Ljava / lang / StringBuilder;

invoke-direct {v7}, Ljava / lang / StringBuilder; -><init>() V

const-string / jumbo v8, "==>cnapName available: displayName \ ' "

invoke-virtual {v7, v8}, Ljava / lang / StringBuilder; ->append (Ljava / lang / String;) Ljava / lang / StringBuilder;

move-result-object v7

invoke-static {v1}, Lcom / android / incallui / util / MoreStrings; ->toSafeString (Ljava / lang / String;) Ljava / lang / String;

move-result-object v8

invoke-virtual {v7, v8}, Ljava / lang / StringBuilder; ->append (Ljava / lang / String;) Ljava / lang / StringBuilder;

move-result-object v7

.line 752
const-string / jumbo v8, "\ ', displayNumber \'"

.line 751
invoke-virtual {v7, v8}, Ljava / lang / StringBuilder; ->append (Ljava / lang / String;) Ljava / lang / StringBuilder;

move-result-object v7

.line 752
invoke-static {v2}, Lcom / android / incallui / CallerInfoUtils; ->toLogSafePhoneNumber (Ljava / lang / String;) Ljava / lang / String;

move-result-object v8

.line 751
invoke-virtual {v7, v8}, Ljava / lang / StringBuilder; ->append (Ljava / lang / String;) Ljava / lang / StringBuilder;

move-result-object v7

.line 753
const-string / jumbo v8, "\ '"

.line 751
invoke-virtual {v7, v8}, Ljava / lang / StringBuilder; ->append (Ljava / lang / String;) Ljava / lang / StringBuilder;

move-result-object v7

invoke-virtual {v7}, Ljava / lang / StringBuilder; ->toString () Ljava / lang / String;

move-result-object v7

invoke-static {v6, v7}, Lcom / android / incallui / Log; ->d (Ljava / lang / String; Ljava / lang / String;) V

goto / 16: goto_1

.line 759
.local v1, "displayName": Ljava / lang / String;
.local v2, "displayNumber": Ljava / lang / String;
: cond_4
move-object v2, v5

.line 763
.local v2, "displayNumber": Ljava / lang / String;
if-eqz p4,: cond_5

.line 767
iget-object v0, p1, Lcom / android / incallui / CallerInfo; ->geoDescription: Ljava / lang / String;

.line 771
.end local v0 # "displayLocation": Ljava / lang / String;
: cond_5
sget-object v6, Lcom / android / incallui / ContactInfoCache; ->TAG: Ljava / lang / String;

new-instance v7, Ljava / lang / StringBuilder;

invoke-direct {v7}, Ljava / lang / StringBuilder; -><init>() V

const-string / jumbo v8, "==>no name; falling back to number: displayNumber \ ' "

invoke-virtual {v7, v8}, Ljava / lang / StringBuilder; ->append (Ljava / lang / String;) Ljava / lang / StringBuilder;

move-result-object v7

.line 772
invoke-static {v2}, Lcom / android / incallui / Log; ->pii (Ljava / lang / Object;) Ljava / lang / String;

move-result-object v8

.line 771
invoke-virtual {v7, v8}, Ljava / lang / StringBuilder; ->append (Ljava / lang / String;) Ljava / lang / StringBuilder;

move-result-object v7

.line 773
const-string / jumbo v8, "\ ', displayLocation \'"

.line 771
invoke-virtual {v7, v8}, Ljava / lang / StringBuilder; ->append (Ljava / lang / String;) Ljava / lang / StringBuilder;

move-result-object v7

.line 773
const-string / jumbo v8, "xxxxxx"

.line 771
invoke-virtual {v7, v8}, Ljava / lang / StringBuilder; ->append (Ljava / lang / String;) Ljava / lang / StringBuilder;

move-result-object v7

.line 773
const-string / jumbo v8, "\ '"

.line 771
invoke-virtual {v7, v8}, Ljava / lang / StringBuilder; ->append (Ljava / lang / String;) Ljava / lang / StringBuilder;

move-result-object v7

invoke-virtual {v7}, Ljava / lang / StringBuilder; ->toString () Ljava / lang / String;

move-result-object v7

invoke-static {v6, v7}, Lcom / android / incallui / Log; ->d (Ljava / lang / String; Ljava / lang / String;) V

goto / 16: goto_1

.line 778
.restart local v0 # "displayLocation": Ljava / lang / String;
.local v2, "displayNumber": Ljava / lang / String;
: cond_6
if-eq p3, v7,: cond_7

.line 782
invoke-static {p0, p3}, Lcom / android / incallui / ContactInfoCache; ->getPresentationString (Landroid / content / Context; I) Ljava / lang / String;

move-result-object v1

.line 783
.local v1, "displayName": Ljava / lang / String;
sget-object v6, Lcom / android / incallui / ContactInfoCache; ->TAG: Ljava / lang / String;

new-instance v7, Ljava / lang / StringBuilder;

invoke-direct {v7}, Ljava / lang / StringBuilder; -><init>() V

const-string / jumbo v8, "==>valid name, but presentation not allowed! displayName = "

invoke-virtual {v7, v8}, Ljava / lang / StringBuilder; ->append (Ljava / lang / String;) Ljava / lang / StringBuilder;

move-result-object v7

.line 784
invoke-static {v1}, Lcom / android / incallui / util / MoreStrings; ->toSafeString (Ljava / lang / String;) Ljava / lang / String;

move-result-object v8

.line 783
invoke-virtual {v7, v8}, Ljava / lang / StringBuilder; ->append (Ljava / lang / String;) Ljava / lang / StringBuilder;

move-result-object v7

invoke-virtual {v7}, Ljava / lang / StringBuilder; ->toString () Ljava / lang / String;

move-result-object v7

invoke-static {v6, v7}, Lcom / android / incallui / Log; ->d (Ljava / lang / String; Ljava / lang / String;) V

goto / 16: goto_1

.line 786
.local v1, "displayName": Ljava / lang / String;
: cond_7
iget-object v1, p1, Lcom / android / incallui / CallerInfo; ->name: Ljava / lang / String;

.line 787
.local v1, "displayName": Ljava / lang / String;
move-object v2, v5

.line 788
.local v2, "displayNumber": Ljava / lang / String;
iget-object v4, p1, Lcom / android / incallui / CallerInfo; ->phoneLabel: Ljava / lang / String;

.line 789
.local v4, "label": Ljava / lang / String;
sget-object v6, Lcom / android / incallui / ContactInfoCache; ->TAG: Ljava / lang / String;

new-instance v7, Ljava / lang / StringBuilder;

invoke-direct {v7}, Ljava / lang / StringBuilder; -><init>() V

const-string / jumbo v8, "==>name is present in CallerInfo: displayName \ ' "

invoke-virtual {v7, v8}, Ljava / lang / StringBuilder; ->append (Ljava / lang / String;) Ljava / lang / StringBuilder;

move-result-object v7

invoke-static {v1}, Lcom / android / incallui / util / MoreStrings; ->toSafeString (Ljava / lang / String;) Ljava / lang / String;

move-result-object v8

invoke-virtual {v7, v8}, Ljava / lang / StringBuilder; ->append (Ljava / lang / String;) Ljava / lang / StringBuilder;

move-result-object v7

.line 790
const-string / jumbo v8, "\ ', displayNumber \'"

.line 789
invoke-virtual {v7, v8}, Ljava / lang / StringBuilder; ->append (Ljava / lang / String;) Ljava / lang / StringBuilder;

move-result-object v7

.line 790
invoke-static {v2}, Lcom / android / incallui / CallerInfoUtils; ->toLogSafePhoneNumber (Ljava / lang / String;) Ljava / lang / String;

move-result-object v8

.line 789
invoke-virtual {v7, v8}, Ljava / lang / StringBuilder; ->append (Ljava / lang / String;) Ljava / lang / StringBuilder;

move-result-object v7

.line 790
const-string / jumbo v8, "\ '"

.line 789
invoke-virtual {v7, v8}, Ljava / lang / StringBuilder; ->append (Ljava / lang / String;) Ljava / lang / StringBuilder;

move-result-object v7

invoke-virtual {v7}, Ljava / lang / StringBuilder; ->toString () Ljava / lang / String;

move-result-object v7

invoke-static {v6, v7}, Lcom / android / incallui / Log; ->d (Ljava / lang / String; Ljava / lang / String;) V

goto / 16: goto_1

.line 798
.end local v0 # "displayLocation": Ljava / lang / String;
.end local v1 # "displayName": Ljava / lang / String;
.end local v2 # "displayNumber": Ljava / lang / String;
.end local v4 # "label": Ljava / lang / String;
: cond_8
iget-object v0, p1, Lcom / android / incallui / CallerInfo; ->geoDescription: Ljava / lang / String;

.local v0, "displayLocation": Ljava / lang / String;
goto / 16: goto_2
.end method

.method private sendImageNotifications (Ljava / lang / String; Lcom / android / incallui / ContactInfoCache $ ContactCacheEntry;) V
.locals 6
.param p1, "callId" # Ljava / lang / String;
.param p2, "entry" # Lcom / android / incallui / ContactInfoCache $ ContactCacheEntry;

.prologue
.line 827
iget-object v5, p2, Lcom / android / incallui / ContactInfoCache $ ContactCacheEntry; ->yellowPagePhone: Lmiui / yellowpage / YellowPagePhone;

if-nez v5,: cond_0

.line 828
iget-object v5, p0, Lcom / android / incallui / ContactInfoCache; ->mCallBacks: Ljava / util / HashMap;

invoke-virtual {v5, p1}, Ljava / util / HashMap; ->get (Ljava / lang / Object;) Ljava / lang / Object;

move-result-object v2

check-cast v2, Ljava / util / Set;

.line 829
.local v2, "callBacks": Ljava / util / Set ;, "Ljava / util / Set<Lcom / android / incallui / ContactInfoCache $ ContactInfoCacheCallback;>;"
if-eqz v2,: cond_1

.line 830
invoke-interface {v2}, Ljava / lang / Iterable; ->iterator () Ljava / util / Iterator;

move-result-object v1

.local v1, "callBack $ iterator": Ljava / util / Iterator;
: goto_0
invoke-interface {v1}, Ljava / util / Iterator; ->hasNext () Z

move-result v5

if-eqz v5,: cond_1

invoke-interface {v1}, Ljava / util / Iterator; ->next () Ljava / lang / Object;

move-result-object v0

check-cast v0, Lcom / android / incallui / ContactInfoCache $ ContactInfoCacheCallback;

.line 831
.local v0, "callBack": Lcom / android / incallui / ContactInfoCache $ ContactInfoCacheCallback;
invoke-interface {v0, p1, p2}, Lcom / android / incallui / ContactInfoCache $ ContactInfoCacheCallback; ->onImageLoadComplete (Ljava / lang / String; Lcom / android / incallui / ContactInfoCache $ ContactCacheEntry;) V

goto: goto_0

.line 834
.end local v0 # "callBack": Lcom / android / incallui / ContactInfoCache $ ContactInfoCacheCallback;
.end local v1 # "callBack $ iterator": Ljava / util / Iterator;
.end local v2 # "callBacks": Ljava / util / Set ;, "Ljava / util / Set<Lcom / android / incallui / ContactInfoCache $ ContactInfoCacheCallback;>;"
: cond_0
iget-object v5, p0, Lcom / android / incallui / ContactInfoCache; ->mYellowPageCallBacks: Ljava / util / Set;

if-eqz v5,: cond_1

.line 835
iget-object v5, p0, Lcom / android / incallui / ContactInfoCache; ->mYellowPageCallBacks: Ljava / util / Set;

invoke-interface {v5}, Ljava / lang / Iterable; ->iterator () Ljava / util / Iterator;

move-result-object v4

.local v4, "callback $ iterator": Ljava / util / Iterator;
: goto_1
invoke-interface {v4}, Ljava / util / Iterator; ->hasNext () Z

move-result v5

if-eqz v5,: cond_1

invoke-interface {v4}, Ljava / util / Iterator; ->next () Ljava / lang / Object;

move-result-object v3

check-cast v3, Lcom / android / incallui / ContactInfoCache $ ContactInfoCacheCallback;

.line 836
.local v3, "callback": Lcom / android / incallui / ContactInfoCache $ ContactInfoCacheCallback;
invoke-interface {v3, p1, p2}, Lcom / android / incallui / ContactInfoCache $ ContactInfoCacheCallback; ->onImageLoadComplete (Ljava / lang / String; Lcom / android / incallui / ContactInfoCache $ ContactCacheEntry;) V

goto: goto_1

.line 826
.end local v3 # "callback": Lcom / android / incallui / ContactInfoCache $ ContactInfoCacheCallback;
.end local v4 # "callback $ iterator": Ljava / util / Iterator;
: cond_1
return-void
.end method

.method private sendInfoNotifications (Ljava / lang / String; Lcom / android / incallui / ContactInfoCache $ ContactCacheEntry;) V
.locals 4
.param p1, "callId" # Ljava / lang / String;
.param p2, "entry" # Lcom / android / incallui / ContactInfoCache $ ContactCacheEntry;

.prologue
.line 818
iget-object v3, p0, Lcom / android / incallui / ContactInfoCache; ->mCallBacks: Ljava / util / HashMap;

invoke-virtual {v3, p1}, Ljava / util / HashMap; ->get (Ljava / lang / Object;) Ljava / lang / Object;

move-result-object v2

check-cast v2, Ljava / util / Set;

.line 819
.local v2, "callBacks": Ljava / util / Set ;, "Ljava / util / Set<Lcom / android / incallui / ContactInfoCache $ ContactInfoCacheCallback;>;"
if-eqz v2,: cond_0

.line 820
invoke-interface {v2}, Ljava / lang / Iterable; ->iterator () Ljava / util / Iterator;

move-result-object v1

.local v1, "callBack $ iterator": Ljava / util / Iterator;
: goto_0
invoke-interface {v1}, Ljava / util / Iterator; ->hasNext () Z

move-result v3

if-eqz v3,: cond_0

invoke-interface {v1}, Ljava / util / Iterator; ->next () Ljava / lang / Object;

move-result-object v0

check-cast v0, Lcom / android / incallui / ContactInfoCache $ ContactInfoCacheCallback;

.line 821
.local v0, "callBack": Lcom / android / incallui / ContactInfoCache $ ContactInfoCacheCallback;
invoke-interface {v0, p1, p2}, Lcom / android / incallui / ContactInfoCache $ ContactInfoCacheCallback; ->onContactInfoComplete (Ljava / lang / String; Lcom / android / incallui / ContactInfoCache $ ContactCacheEntry;) V

goto: goto_0

.line 817
.end local v0 # "callBack": Lcom / android / incallui / ContactInfoCache $ ContactInfoCacheCallback;
.end local v1 # "callBack $ iterator": Ljava / util / Iterator;
: cond_0
return-void
.end method


# virtual methods
.method public clearCache () V
.locals 1

.prologue
.line 625
iget-object v0, p0, Lcom / android / incallui / ContactInfoCache; ->mInfoMap: Ljava / util / HashMap;

invoke-virtual {v0}, Ljava / util / HashMap; ->clear () V

.line 626
iget-object v0, p0, Lcom / android / incallui / ContactInfoCache; ->mCallBacks: Ljava / util / HashMap;

invoke-virtual {v0}, Ljava / util / HashMap; ->clear () V

.line 627
iget-object v0, p0, Lcom / android / incallui / ContactInfoCache; ->mYellowPageCallBacks: Ljava / util / Set;

if-eqz v0,: cond_0

.line 628
iget-object v0, p0, Lcom / android / incallui / ContactInfoCache; ->mYellowPageCallBacks: Ljava / util / Set;

invoke-interface {v0}, Ljava / util / Set; ->clear () V

.line 624
: cond_0
return-void
.end method

.method public clearInfoMapCache () V
.locals 1

.prologue
.line 636
iget-object v0, p0, Lcom / android / incallui / ContactInfoCache; ->mInfoMap: Ljava / util / HashMap;

invoke-virtual {v0}, Ljava / util / HashMap; ->clear () V

.line 637
iget-object v0, p0, Lcom / android / incallui / ContactInfoCache; ->mTelocationMap: Ljava / util / HashMap;

invoke-virtual {v0}, Ljava / util / HashMap; ->clear () V

.line 638
iget-object v0, p0, Lcom / android / incallui / ContactInfoCache; ->mYellowPageCallBacks: Ljava / util / Set;

if-eqz v0,: cond_0

.line 639
iget-object v0, p0, Lcom / android / incallui / ContactInfoCache; ->mYellowPageCallBacks: Ljava / util / Set;

invoke-interface {v0}, Ljava / util / Set; ->clear () V

.line 635
: cond_0
return-void
.end method

.method public findInfo (Lcom / android / incallui / Call; ZLcom / android / incallui / ContactInfoCache $ ContactInfoCacheCallback;) V
.locals 8
.param p1, "call" # Lcom / android / incallui / Call;
.param p2, "isIncoming" # Z
.param p3, "callback" # Lcom / android / incallui / ContactInfoCache $ ContactInfoCacheCallback;

.prologue
const / 4 v5, 0x0

.line 367
invoke-static {}, Landroid / os / Looper; ->getMainLooper () Landroid / os / Looper;

move-result-object v4

invoke-virtual {v4}, Landroid / os / Looper; ->getThread () Ljava / lang / Thread;

move-result-object v4

invoke-static {}, Ljava / lang / Thread; ->currentThread () Ljava / lang / Thread;

move-result-object v6

if-ne v4, v6,: cond_4

const / 4 v4, 0x1

: goto_0
invoke-static {v4}, Lcom / google / common / base / Preconditions; ->checkState (Z) V

.line 368
invoke-static {p3}, Lcom / google / common / base / Preconditions; ->checkNotNull (Ljava / lang / Object;) Ljava / lang / Object;

.line 370
invoke-virtual {p1}, Lcom / android / incallui / Call; ->getId () Ljava / lang / String;

move-result-object v2

.line 371
.local v2, "callId": Ljava / lang / String;
iget-object v4, p0, Lcom / android / incallui / ContactInfoCache; ->mInfoMap: Ljava / util / HashMap;

invoke-virtual {v4, v2}, Ljava / util / HashMap; ->get (Ljava / lang / Object;) Ljava / lang / Object;

move-result-object v0

check-cast v0, Lcom / android / incallui / ContactInfoCache $ ContactCacheEntry;

.line 372
.local v0, "cacheEntry": Lcom / android / incallui / ContactInfoCache $ ContactCacheEntry;
if-eqz v0,: cond_0

invoke-virtual {p1}, Lcom / android / incallui / Call; ->getNumber () Ljava / lang / String;

move-result-object v4

if-eqz v4,: cond_0

iget-boolean v4, v0, Lcom / android / incallui / ContactInfoCache $ ContactCacheEntry; ->isEmergencyNumber: Z

if-eqz v4,: cond_5

.line 374
: cond_0
: goto_1
if-eqz v0,: cond_2

iget-object v4, v0, Lcom / android / incallui / ContactInfoCache $ ContactCacheEntry; ->number: Ljava / lang / String;

if-nez v4,: cond_2

.line 375
invoke-static {}, Lcom / android / incallui / CallList; ->getInstance () Lcom / android / incallui / CallList;

move-result-object v4

invoke-virtual {p1}, Lcom / android / incallui / Call; ->getParentId () Ljava / lang / String;

move-result-object v6

invoke-virtual {v4, v6}, Lcom / android / incallui / CallList; ->getCallById (Ljava / lang / String;) Lcom / android / incallui / Call;

move-result-object v4

.line 374
invoke-static {v4}, Lcom / android / incallui / CallUtils; ->isVtConferenceCall (Lcom / android / incallui / Call;) Z

move-result v4

.line 372
if-eqz v4,: cond_2

.line 376
: cond_1
iget-object v4, p0, Lcom / android / incallui / ContactInfoCache; ->mInfoMap: Ljava / util / HashMap;

invoke-virtual {v4, v2}, Ljava / util / HashMap; ->remove (Ljava / lang / Object;) Ljava / lang / Object;

.line 377
const / 4 v0, 0x0

.line 378
.local v0, "cacheEntry": Lcom / android / incallui / ContactInfoCache $ ContactCacheEntry;
iget-object v4, p0, Lcom / android / incallui / ContactInfoCache; ->mCallBacks: Ljava / util / HashMap;

invoke-virtual {v4, v2}, Ljava / util / HashMap; ->remove (Ljava / lang / Object;) Ljava / lang / Object;

.line 380
.end local v0 # "cacheEntry": Lcom / android / incallui / ContactInfoCache $ ContactCacheEntry;
: cond_2
iget-object v4, p0, Lcom / android / incallui / ContactInfoCache; ->mCallBacks: Ljava / util / HashMap;

invoke-virtual {v4, v2}, Ljava / util / HashMap; ->get (Ljava / lang / Object;) Ljava / lang / Object;

move-result-object v1

check-cast v1, Ljava / util / Set;

.line 383
.local v1, "callBacks": Ljava / util / Set ;, "Ljava / util / Set<Lcom / android / incallui / ContactInfoCache $ ContactInfoCacheCallback;>;"
if-eqz v0,: cond_7

.line 385
iget-object v4, p0, Lcom / android / incallui / ContactInfoCache; ->mYellowPageCallBacks: Ljava / util / Set;

if-eqz v4,: cond_3

.line 386
iget-object v4, p0, Lcom / android / incallui / ContactInfoCache; ->mYellowPageCallBacks: Ljava / util / Set;

invoke-interface {v4, p3}, Ljava / util / Set; ->add (Ljava / lang / Object;) Z

.line 388
: cond_3
sget-object v6, Lcom / android / incallui / ContactInfoCache; ->TAG: Ljava / lang / String;

new-instance v4, Ljava / lang / StringBuilder;

invoke-direct {v4}, Ljava / lang / StringBuilder; -><init>() V

const-string / jumbo v7, "Contact lookup In memory cache hit;. lookup"

invoke-virtual {v4, v7}, Ljava / lang / StringBuilder; ->append (Ljava / lang / String;) Ljava / lang / StringBuilder;

move-result-object v7

.line 389
if-nez v1,: cond_6

const-string / jumbo v4, "complete"

.line 388
: goto_2
invoke-virtual {v7, v4}, 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 v4

invoke-static {v6, v4}, Lcom / android / incallui / Log; ->d (Ljava / lang / String; Ljava / lang / String;) V

.line 390
invoke-interface {p3, v2, v0}, Lcom / android / incallui / ContactInfoCache $ ContactInfoCacheCallback; ->onContactInfoComplete (Ljava / lang / String; Lcom / android / incallui / ContactInfoCache $ ContactCacheEntry;) V

.line 392
if-nez v1,: cond_7

.line 393
return-void

.end local v1 # "callBacks": Ljava / util / Set ;, "Ljava / util / Set<Lcom / android / incallui / ContactInfoCache $ ContactInfoCacheCallback;>;"
.end local v2 # "callId": Ljava / lang / String;
: cond_4
move v4, v5

.line 367
goto: goto_0

.line 373
.local v0, "cacheEntry": Lcom / android / incallui / ContactInfoCache $ ContactCacheEntry;
.restart local v2 # "callId": Ljava / lang / String;
: cond_5
invoke-virtual {p1}, Lcom / android / incallui / Call; ->getNumber () Ljava / lang / String;

move-result-object v4

iget-object v6, v0, Lcom / android / incallui / ContactInfoCache $ ContactCacheEntry; ->number: Ljava / lang / String;

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

move-result v4

if-eqz v4,: cond_1

goto: goto_1

.line 389
.end local v0 # "cacheEntry": Lcom / android / incallui / ContactInfoCache $ ContactCacheEntry;
.restart local v1 # "callBacks": Ljava / util / Set ;, "Ljava / util / Set<Lcom / android / incallui / ContactInfoCache $ ContactInfoCacheCallback;>;"
: cond_6
const-string / jumbo v4, "still running"

goto: goto_2

.line 398
: cond_7
if-eqz v1,: cond_8

.line 399
invoke-interface {v1, p3}, Ljava / util / Set; ->add (Ljava / lang / Object;) Z

.line 400
return-void

.line 402
: cond_8
sget-object v4, Lcom / android / incallui / ContactInfoCache; ->TAG: Ljava / lang / String;

const-string / jumbo v6, "Contact lookup In memory cache miss;. searching provider."

invoke-static {v4, v6}, Lcom / android / incallui / Log; ->d (Ljava / lang / String; Ljava / lang / String;) V

.line 404
invoke-static {}, Lcom / google / common / collect / Sets; ->newHashSet () Ljava / util / HashSet;

move-result-object v1

.line 405
invoke-interface {v1, p3}, Ljava / util / Set; ->add (Ljava / lang / Object;) Z

.line 406
iget-object v4, p0, Lcom / android / incallui / ContactInfoCache; ->mCallBacks: Ljava / util / HashMap;

invoke-virtual {v4, v2, v1}, Ljava / util / HashMap; ->put (Ljava / lang / Object; Ljava / lang / Object;) Ljava / lang / Object;

.line 415
iget-object v4, p0, Lcom / android / incallui / ContactInfoCache; ->mContext: Landroid / content / Context;

new-instance v6, Lcom / android / incallui / ContactInfoCache $ FindInfoCallback;

invoke-direct {v6, p0, p2}, Lcom / android / incallui / ContactInfoCache $ FindInfoCallback; -><init>(Lcom / android / incallui / ContactInfoCache; Z) V

.line 414
invoke-static {v4, p1, v6}, Lcom / android / incallui / CallerInfoUtils; ->getCallerInfoForCall (Landroid / content / Context; Lcom / android / incallui / Call; Lcom / android / incallui / CallerInfoAsyncQuery $ OnQueryCompleteListener;) Lcom / android / incallui / CallerInfo;

move-result-object v3

.line 417
.local v3, "callerInfo": Lcom / android / incallui / CallerInfo;
invoke-direct {p0, p1, v3, p2, v5}, Lcom / android / incallui / ContactInfoCache; ->findInfoQueryComplete (Lcom / android / incallui / Call; Lcom / android / incallui / CallerInfo; ZZ) V

.line 366
return-void
.end method

.method public getInfo (Ljava / lang / String;) Lcom / android / incallui / ContactInfoCache $ ContactCacheEntry;
.locals 1
.param p1, "callId" # Ljava / lang / String;

.prologue
.line 94
iget-object v0, p0, Lcom / android / incallui / ContactInfoCache; ->mInfoMap: Ljava / util / HashMap;

invoke-virtual {v0, p1}, Ljava / util / HashMap; ->get (Ljava / lang / Object;) Ljava / lang / Object;

move-result-object v0

check-cast v0, Lcom / android / incallui / ContactInfoCache $ ContactCacheEntry;

return object v0
.end method

.method public getTelocation (Ljava / lang / String;) Ljava / lang / String;
.locals 2
.param p1, "number" # Ljava / lang / String;

.prologue
.line 493
invoke-static {p1}, Landroid / text / TextUtils; ->isEmpty (Ljava / lang / CharSequence;) Z

move-result v1

if-nez v1,: cond_1

.line 494
iget-object v1, p0, Lcom / android / incallui / ContactInfoCache; ->mContext: Landroid / content / Context;

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

move-result-object v1

invoke-static {v1}, Landroid / provider / MiuiSettings $ Telephony; ->isTelocationEnable (Landroid / content / ContentResolver;) Z

move-result v1

.line 493
if-eqz v1,: cond_1

.line 495
invoke-static {p1}, Landroid / telephony / PhoneNumberUtils; ->stripSeparators (Ljava / lang / String;) Ljava / lang / String;

move-result-object p1

.line 496
iget-object v1, p0, Lcom / android / incallui / ContactInfoCache; ->mTelocationMap: Ljava / util / HashMap;

invoke-virtual {v1, p1}, Ljava / util / HashMap; ->get (Ljava / lang / Object;) Ljava / lang / Object;

move-result-object v0

check-cast v0, Ljava / lang / String;

.line 497
.local v0, "telocation": Ljava / lang / String;
invoke-static {v0}, Landroid / text / TextUtils; ->isEmpty (Ljava / lang / CharSequence;) Z

move-result v1

if-nez v1,: cond_0

.line 498
return object v0

.line 500
: cond_0
iget-object v1, p0, Lcom / android / incallui / ContactInfoCache; ->mContext: Landroid / content / Context;

invoke-static {v1, p1}, Lcom / android / incallui / util / Utils; ->getOperatorAndLocation (Landroid / content / Context; Ljava / lang / String;) Ljava / lang / String;

move-result-object v0

.line 501
invoke-static {v0}, Landroid / text / TextUtils; ->isEmpty (Ljava / lang / CharSequence;) Z

move-result v1

if-nez v1,: cond_1

.line 502
iget-object v1, p0, Lcom / android / incallui / ContactInfoCache; ->mTelocationMap: Ljava / util / HashMap;

invoke-virtual {v1, p1, v0}, Ljava / util / HashMap; ->put (Ljava / lang / Object; Ljava / lang / Object;) Ljava / lang / Object;

.line 503
return object v0

.line 506
.end local v0 # "telocation": Ljava / lang / String;
: cond_1
const / 4 v1,0x0

return object v1
.end method

.method public onImageLoadComplete (ILandroid / graphics / drawable / Drawable; Landroid / graphics / Bitmap; Ljava / lang / Object;) V
.locals 5
.param p1, "token" # I
.param p2, "photo" # Landroid / graphics / drawable / Drawable;
.param p3, "photoIcon" # Landroid / graphics / Bitmap;
.param p4, "cookie" # Ljava / lang / Object;

.prologue
const / 4 v4, 0x0

.line 581
const-string / jumbo v2, "Image load complete with context:"

iget-object v3, p0, Lcom / android / incallui / ContactInfoCache; ->mContext: Landroid / content / Context;

invoke-static {p0, v2, v3}, Lcom / android / incallui / Log; ->d (Ljava / lang / Object; Ljava / lang / String; Ljava / lang / Object;) V

move-object v0, p4

.line 585
check-cast v0, Ljava / lang / String;

.line 586
.local v0, "callId": Ljava / lang / String;
iget-object v2, p0, Lcom / android / incallui / ContactInfoCache; ->mInfoMap: Ljava / util / HashMap;

invoke-virtual {v2, v0}, Ljava / util / HashMap; ->get (Ljava / lang / Object;) Ljava / lang / Object;

move-result-object v1

check-cast v1, Lcom / android / incallui / ContactInfoCache $ ContactCacheEntry;

.line 587
.local v1, "entry": Lcom / android / incallui / ContactInfoCache $ ContactCacheEntry;
new-instance v2, Ljava / lang / StringBuilder;

invoke-direct {v2}, Ljava / lang / StringBuilder; -><init>() V

const-string / jumbo v3, "Image load complete with token ="

invoke-virtual {v2, v3}, Ljava / lang / StringBuilder; ->append (Ljava / lang / String;) Ljava / lang / StringBuilder;

move-result-object v2

invoke-virtual {v2, p1}, Ljava / lang / StringBuilder; ->append (I) Ljava / lang / StringBuilder;

move-result-object v2

const-string / jumbo v3, "callId ="

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 (Ljava / lang / String;) Ljava / lang / StringBuilder;

move-result-object v2

invoke-virtual {v2}, Ljava / lang / StringBuilder; ->toString () Ljava / lang / String;

move-result-object v2

invoke-static {p0, v2}, Lcom / android / incallui / Log; ->i (Ljava / lang / Object; Ljava / lang / String;) V

.line 589
if-nez v1,: cond_0

.line 590
const-string / jumbo v2, "Image Load received for empty search entry."

invoke-static {p0, v2}, Lcom / android / incallui / Log; ->e (Ljava / lang / Object; Ljava / lang / String;) V

.line 591
invoke-direct {p0, v0}, Lcom / android / incallui / ContactInfoCache; ->clearCallbacks (Ljava / lang / String;) V

.line 592
return-void

.line 594
: cond_0
const-string / jumbo v2, "setting photo for entry:"

invoke-static {p0, v2, v1}, Lcom / android / incallui / Log; ->d (Ljava / lang / Object; Ljava / lang / String; Ljava / lang / Object;) V

.line 597
if-eqz p2,: cond_1

.line 598
const-string / jumbo v2, "direct drawable:"

invoke-static {p0, v2, p2}, Lcom / android / incallui / Log; ->v (Ljava / lang / Object; Ljava / lang / String; Ljava / lang / Object;) V

.line 599
iput-object p2, v1, Lcom / android / incallui / ContactInfoCache $ ContactCacheEntry; ->photo: Landroid / graphics / drawable / Drawable;

.line 608
: goto_0
invoke-direct {p0, v0, v1}, Lcom / android / incallui / ContactInfoCache; ->sendImageNotifications (Ljava / lang / String; Lcom / android / incallui / ContactInfoCache $ ContactCacheEntry;) V

.line 609
invoke-direct {p0, v0}, Lcom / android / incallui / ContactInfoCache; ->clearCallbacks (Ljava / lang / String;) V

.line 580
return-void

.line 600
: cond_1
if-eqz p3,: cond_2

.line 601
const-string / jumbo v2, "photo icon:"

invoke-static {p0, v2, p3}, Lcom / android / incallui / Log; ->v (Ljava / lang / Object; Ljava / lang / String; Ljava / lang / Object;) V

.line 602
new-instance v2, Landroid / graphics / drawable / BitmapDrawable;

iget-object v3, p0, Lcom / android / incallui / ContactInfoCache; ->mContext: Landroid / content / Context;

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

move-result-object v3

invoke-direct {v2, v3, p3}, Landroid / graphics / drawable / BitmapDrawable; -><init>(Landroid / content / res / Resources; Landroid / graphics / Bitmap;) V

iput-object v2, v1, Lcom / android / incallui / ContactInfoCache $ ContactCacheEntry; ->photo: Landroid / graphics / drawable / Drawable;

goto: goto_0

.line 604
: cond_2
const-string / jumbo v2, "unknown photo"

invoke-static {p0, v2}, Lcom / android / incallui / Log; ->v (Ljava / lang / Object; Ljava / lang / String;) V

.line 605
iput-object v4, v1, Lcom / android / incallui / ContactInfoCache $ ContactCacheEntry; ->photo: Landroid / graphics / drawable / Drawable;

goto: goto_0
.end method


Posted on 07/01/2017, 14:23:

Help me please!!!!



Rep: (172)
A small addition toA small addition to manual volume control for miui 8 :
I earned only after the prescription id ringnotif_volume_icon.xml in smali. We are doing all the instructions, assembled / disassembled for Settings.ark id assignment. Then we go to the res / values ​​/ public.xml and search for the keywords "ringnotif_volume_icon" id desired, and add it to smali. I it looks like this:
const-string v0, "notification_volume"

const / 4 v1,0x5

const v2, 0x7f020345 # Added id

invoke-direct {p0, v0, v1, v2}, Lcom / android / settings / MiuiSoundSettings; ->a (Ljava / lang / String; II) V

Byoriginal instructions should be like this:
const-string v0, "notification_volume"

const / 4 v1,0x5

invoke-direct {p0, v0, v1, v2}, Lcom / android / settings / MiuiSoundSettings; ->a (Ljava / lang / String; II) V


Post has been editedLulumbaw - 07.01.17, 15:58



Rep: (655)
* masan7 Now without a computer can not help :( Try this



Rep: (2130)
Automatic closing of the open folder in the MIUI 8 launcher

thanks @Solarwareare
Description
Path: MiuiHome / smali / com / miui / home / launcher / Folder.smali
are looking for
.method public onItemClick (Landroid / widget / AdapterView; Landroid / view / View; IJ) V
....

invoke-virtual {v0, p2}, Lcom / miui / home / launcher / Launcher; ->onClick (Landroid / view / View;) V

goto: goto_0
.end method

Insert the following onClick line
invoke-virtual {v0}, Lcom / miui / home / launcher / Launcher; ->onBackPressed () V

got
.method public onItemClick (Landroid / widget / AdapterView; Landroid / view / View; IJ) V
...

invoke-virtual {v0, p2}, Lcom / miui / home / launcher / Launcher; ->onClick (Landroid / view / View;) V

invoke-virtual {v0}, Lcom / miui / home / launcher / Launcher; ->onBackPressed () V

goto: goto_0
.end method

where v0, if that change to the register, which you used


Full version    

Help     rules

Time is now: 08/06/20, 12:07