和通讯录 v3.9.6版本的 MD5 值为:669178e2ee1b2311daf378bd20c6bbe1
以下内容为反编译后的 aw.java 源代码,内容仅作参考
package com.chinamobile.contacts.im.call.view;
import android.annotation.SuppressLint;
import android.app.NotificationManager;
import android.content.Context;
import android.content.Intent;
import android.database.Cursor;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Build;
import android.os.Handler;
import android.support.v4.app.NotificationCompat;
import android.support.v4.app.TaskStackBuilder;
import android.telephony.TelephonyManager;
import android.text.TextUtils;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
import android.view.WindowManager;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.TextView;
import com.android.internal.telephony.PhoneConstants;
import com.chinamobile.contacts.im.C0019R;
import com.chinamobile.contacts.im.Main;
import com.chinamobile.contacts.im.conference.ConferenceControlActivity;
import com.chinamobile.contacts.im.config.LoginInfoSP;
import com.chinamobile.contacts.im.data.ContactAccessor;
import com.chinamobile.contacts.im.data.simcard.MultiSimCardAccessor;
import com.chinamobile.contacts.im.jni.Jni;
import com.chinamobile.contacts.im.mms2.utils.TimingSmsUtil;
import com.chinamobile.contacts.im.utils.ApplicationUtils;
import com.gmcc.mmeeting.sdk.entity.ConferenceInfo;
import com.gmcc.mmeeting.sdk.entity.ConferenceRole;
import com.gmcc.mmeeting.sdk.entity.PasswordEntry;
import com.iflytek.cloud.ErrorCode;
import com.nostra13.universalimageloader.core.download.BaseImageDownloader;
import com.umeng.analytics.MobclickAgent;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.TimeZone;
import org.simpleframework.xml.strategy.Name;
public class aw implements View.OnClickListener, View.OnTouchListener {
private static aw e;
private String A;
private String B;
private String C;
private String D;
private com.chinamobile.contacts.im.contacts.c.x E;
private LinearLayout F;
private com.chinamobile.contacts.im.contacts.c.o H;
private long K;
private Context L;
private String M;
private List<com.chinamobile.icloud.im.sync.a.n> N;
private ViewGroup O;
private Handler S;
private int T;
private TextView U;
private com.chinamobile.contacts.im.enterpriseContact.a.b V;
private Cursor W;
private com.chinamobile.contacts.im.enterpriseContact.b.f X;
private NotificationManager Z;
int f1602a;
int f1603b;
int c;
int d;
private WindowManager f;
private WindowManager.LayoutParams g;
private float h;
private float i;
private View j;
private String l;
private ImageButton m;
private TextView n;
private TextView o;
private TextView p;
private TextView q;
private TextView r;
private TextView s;
private TextView t;
private ImageView u;
private ImageView v;
private ImageView w;
private Bitmap x;
private Bitmap y;
private String z;
private boolean k = false;
private int G = 0;
private int[] I = {C0019R.layout.ringing_call_layout_1, C0019R.layout.ringing_call_layout_2, C0019R.layout.ringing_call_layout_3, C0019R.layout.ringing_call_layout_4, C0019R.layout.ringing_call_layout_5};
private int[] J = {C0019R.layout.ringing_call_layout_1_1, C0019R.layout.ringing_call_layout_2_2, C0019R.layout.ringing_call_layout_3_3, C0019R.layout.ringing_call_layout_4_4, C0019R.layout.ringing_call_layout_5_5};
private boolean P = false;
private boolean Q = false;
private boolean R = false;
private boolean Y = false;
public static aw a(Context context) {
if (e == null) {
e = new aw(context);
}
return e;
}
private aw(Context context) {
this.L = context;
this.f = (WindowManager) this.L.getSystemService("window");
c();
}
private void c() {
this.S = new ax(this);
}
public void d() {
try {
this.E = ContactAccessor.getContactInfoForPhoneNumber(this.M, this.L);
if (this.E != null) {
this.K = this.E.e();
this.H = ContactAccessor.getInstance().getDetailContact((int) this.K);
}
if (this.H != null) {
com.chinamobile.contacts.im.cloudserver.aq.a(this.L, this.H);
}
if (this.H != null && this.H.getComingCallShow().size() > 0) {
this.G = com.chinamobile.contacts.im.contacts.d.g.b(Integer.valueOf(this.H.getComingCallShow().get(0).h()).intValue());
if (this.G < 0 || this.G >= this.I.length) {
this.G = 0;
}
}
com.chinamobile.contacts.im.utils.aq.d("long", "incoming num =" + this.M + ",mRawId = " + this.K + ", mdetailcontact = " + this.H + ", Theme = " + this.G);
} catch (Exception e2) {
e2.printStackTrace();
}
}
private void e() {
this.V = new com.chinamobile.contacts.im.enterpriseContact.a.b(this.L);
try {
this.W = this.V.a();
} catch (Exception e2) {
e2.printStackTrace();
}
if (Build.MODEL.equals("Lenovo A320t") || Build.MODEL.equals("E601M") || Build.MODEL.equals("KONKA L813") || Build.MODEL.equals("Lenovo A5800-D") || Build.MODEL.equals("HUAWEI G628-TL00")) {
this.j = View.inflate(this.L, C0019R.layout.ringing_call_layout_new, null);
} else {
this.j = View.inflate(this.L, C0019R.layout.ringing_call_layout_new, null);
}
this.F = (LinearLayout) this.j.findViewById(C0019R.id.call_bg_view);
this.F.setBackgroundResource(C0019R.drawable.bg_callwin2);
this.j.setOnTouchListener(this);
this.m = (ImageButton) this.j.findViewById(C0019R.id.ringing_call_close);
this.m.setOnClickListener(this);
this.n = (TextView) this.j.findViewById(C0019R.id.loc_oper_label);
this.u = (ImageView) this.j.findViewById(C0019R.id.ringing_person_icon);
this.s = (TextView) this.j.findViewById(C0019R.id.call_colleague);
this.v = (ImageView) this.j.findViewById(C0019R.id.call_colleagueimg);
this.o = (TextView) this.j.findViewById(C0019R.id.company_label);
this.p = (TextView) this.j.findViewById(C0019R.id.duty_label);
this.q = (TextView) this.j.findViewById(C0019R.id.recent_label);
this.r = (TextView) this.j.findViewById(C0019R.id.name_label);
this.r.setText(TextUtils.isEmpty(this.M) ? "" : this.M);
this.O = (ViewGroup) this.j.findViewById(C0019R.id.notes);
switch (this.G) {
case 0:
this.F.setBackgroundResource(C0019R.drawable.bg_callwin5);
break;
case 1:
this.F.setBackgroundResource(C0019R.drawable.bg_callwin1);
break;
case 2:
this.F.setBackgroundResource(C0019R.drawable.bg_callwin2);
break;
case 3:
this.F.setBackgroundResource(C0019R.drawable.bg_callwin3);
break;
case 4:
this.F.setBackgroundResource(C0019R.drawable.bg_callwin4);
break;
}
if (this.G == 1 || this.G == 2) {
this.r.setTextColor(-1);
this.n.setTextColor(-1);
this.o.setTextColor(-1);
this.p.setTextColor(-1);
this.q.setTextColor(-1);
this.m.setBackgroundResource(C0019R.drawable.close_write);
}
if (!l()) {
if (Build.MODEL.equals("Haipai Noble D3") || Build.MODEL.equals("HL-6360T")) {
this.j.setVisibility(8);
}
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(-2, -2);
layoutParams.topMargin = ApplicationUtils.dip2px(this.L, 8.0f);
this.U = new TextView(this.L);
this.U.setTextColor(-13812144);
this.U.setTextSize(11.0f);
this.U.setGravity(17);
this.O.removeAllViews();
this.O.addView(this.U, layoutParams);
}
this.t = (TextView) this.j.findViewById(C0019R.id.ring_call_view_vice_number_text);
this.w = (ImageView) this.j.findViewById(C0019R.id.ring_call_view_vice_number_iv);
int a2 = com.chinamobile.contacts.im.utils.g.a(this.M);
if (a2 > 0 && a2 < 4 && LoginInfoSP.isHaveSubPhone(this.L)) {
if (this.P) {
this.t.setText(com.chinamobile.contacts.im.utils.g.c("" + a2) + "呼出");
} else {
this.t.setText(com.chinamobile.contacts.im.utils.g.c("" + a2) + "接听");
}
com.chinamobile.contacts.im.utils.g.a(a2, (View) this.t);
com.chinamobile.contacts.im.utils.g.b(a2, this.w);
this.t.setVisibility(0);
this.w.setVisibility(0);
}
}
public void f() {
String str;
this.Q = false;
try {
if (this.M == null) {
this.M = "";
}
String e2 = com.chinamobile.contacts.im.utils.bb.e(this.M);
com.chinamobile.contacts.im.utils.aq.d("king", "queryContactData number " + e2);
if (e2.equals("18818812590")) {
this.D = "多方通话号码";
this.x = BitmapFactory.decodeResource(this.L.getResources(), C0019R.drawable.ic_conference_showing);
this.N = null;
ArrayList<ConferenceInfo> a2 = com.chinamobile.contacts.im.conference.b.a.a(ContactAccessor.getEntity(this.L).c());
String str2 = "";
String str3 = "";
if (a2.size() > 0) {
ConferenceInfo conferenceInfo = a2.get(0);
String str4 = "" + conferenceInfo.getId();
long time = (new Date().getTime() - conferenceInfo.getStartTime()) / 1000;
com.chinamobile.contacts.im.utils.aq.d("long", "ConferenceInfoId:" + str4 + "conferenceInfo interval = " + time);
if (time < 180) {
for (PasswordEntry passwordEntry : conferenceInfo.getPasswords()) {
str3 = passwordEntry.getConferenceRole() == ConferenceRole.chair ? passwordEntry.getPassword() : str3;
}
}
str2 = str4;
}
com.chinamobile.contacts.im.utils.aq.d("king", "queryContactData id " + str2 + " pwd " + str3);
if (!TextUtils.isEmpty(str2) && !TextUtils.isEmpty(str3)) {
NotificationCompat.Builder builder = new NotificationCompat.Builder(this.L);
builder.setContentTitle("多方通话");
builder.setContentText("进入会议控制");
builder.setAutoCancel(true);
builder.setLargeIcon(BitmapFactory.decodeResource(this.L.getResources(), C0019R.drawable.ic_launcher));
if (Build.VERSION.SDK_INT >= 21) {
builder.setSmallIcon(C0019R.drawable.ic_launcher5);
} else {
builder.setSmallIcon(C0019R.drawable.ic_launcher);
}
Intent intent = new Intent(this.L, (Class<?>) ConferenceControlActivity.class);
intent.putExtra(Name.MARK, str2);
intent.putExtra("pwd", str3);
TaskStackBuilder create = TaskStackBuilder.create(this.L);
create.addParentStack(ConferenceControlActivity.class);
create.addNextIntent(intent);
builder.setContentIntent(create.getPendingIntent(0, 134217728));
b().notify(ErrorCode.MSP_ERROR_TUV_GETHIDPARAM, builder.build());
com.chinamobile.contacts.im.manager.d.a(this.L).e(intent, "进入会议控制");
ContactAccessor.getInstance().loadCallLogs(this.L, "18818812590");
return;
}
return;
}
Jni.getInstance();
String findLoc = Jni.findLoc(com.chinamobile.contacts.im.utils.bb.a(this.M, true));
String a3 = com.chinamobile.contacts.im.utils.p.a(this.M);
if (this.M.length() > 10) {
if (findLoc.length() + a3.length() < 1) {
str = "未知归属地";
} else {
str = "(" + findLoc.replace("-", "") + a3 + ")";
}
} else {
str = findLoc.length() < 1 ? "" : findLoc;
}
this.z = str;
ArrayList<com.chinamobile.contacts.im.call.c.b> loadCallLogs = ContactAccessor.getInstance().loadCallLogs(this.L, this.M);
if (loadCallLogs == null || loadCallLogs.isEmpty()) {
this.C = this.P ? "首次去电" : "首次来电";
} else {
long f = loadCallLogs.get(0).f();
if (System.currentTimeMillis() - f < 1000 && loadCallLogs.get(1) != null) {
f = loadCallLogs.get(1).f();
}
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(TimingSmsUtil.format);
simpleDateFormat.setTimeZone(TimeZone.getTimeZone("GMT+08:00"));
this.l = simpleDateFormat.format(new Date(f));
this.C = "上次通话: " + this.l;
com.chinamobile.contacts.im.utils.aq.d("whj", "record" + f);
}
this.x = ContactAccessor.getInstance().loadContactPhoto(this.K, true, true, true);
if (this.G == 0 || this.G == 3 || this.G == 4) {
this.y = com.chinamobile.contacts.im.cloudserver.aq.a(this.L, true);
} else {
this.y = com.chinamobile.contacts.im.cloudserver.aq.a(this.L, false);
}
com.chinamobile.contacts.im.utils.aq.d("long", "mCallerLocOper = " + this.z + " mCallerRecent = " + this.C);
new com.chinamobile.contacts.im.enterpriseContact.b.f();
if (LoginInfoSP.isLogin(this.L)) {
com.chinamobile.contacts.im.enterpriseContact.b.f a4 = this.V.a(this.M);
if (a4 != null) {
com.chinamobile.contacts.im.utils.aq.d("whj", "----同事----" + this.M);
this.D = a4.e;
a4.h = TextUtils.isEmpty(a4.h) ? "" : a4.h;
a4.i = TextUtils.isEmpty(a4.i) ? "" : a4.i;
this.A = a4.h + " " + a4.i;
this.B = a4.j;
this.z = this.M + str;
this.R = true;
} else if (LoginInfoSP.isLogin(this.L)) {
this.Q = true;
com.chinamobile.contacts.im.utils.aq.d("whj", "----网络搜索----");
new bc(this, null).executeOnMainExecutor(new Object[0]);
}
}
if (e2.equals("-2")) {
this.D = "私人号码";
this.z = this.M + str;
return;
}
if (e2.equals("18818812590")) {
this.D = "多方通话号码";
this.z = this.M + str;
return;
}
if (e2.equals("-1") || TextUtils.isEmpty(e2)) {
this.D = "未知号码";
this.z = this.M + str;
return;
}
if (this.E == null || this.H == null) {
if (!this.R) {
com.chinamobile.contacts.im.utils.bm bmVar = com.chinamobile.contacts.im.utils.bi.a().c().get(e2);
if (bmVar == null) {
this.D = this.M;
return;
}
String str5 = bmVar.f3730a;
if (TextUtils.isEmpty(str5)) {
this.D = this.M;
return;
} else {
this.D = str5;
this.z = this.M + str;
return;
}
}
return;
}
this.D = this.H.getStructuredName().b();
this.z = this.M + str;
if (this.H.getOrganizations().size() > 0) {
String a5 = this.H.getOrganizations().get(0).a();
String str6 = TextUtils.isEmpty(a5) ? "" : a5;
String d = this.H.getOrganizations().get(0).d();
String c = this.H.getOrganizations().get(0).c();
if (TextUtils.isEmpty(d)) {
d = "";
}
if (TextUtils.isEmpty(c)) {
c = "";
}
this.A = str6 + " " + d;
this.B = c;
}
this.N = this.H.getNotes();
} catch (Exception e3) {
com.chinamobile.contacts.im.utils.aq.a("RingingCallState", "Exception = " + e3);
}
}
public void a(String str, int i) {
if (TextUtils.isEmpty(str)) {
com.chinamobile.contacts.im.utils.aq.a("RingingCallView", "IncomingNum is unknown");
return;
}
if (i != 10 && i != 11) {
com.chinamobile.contacts.im.utils.aq.a("RingingCallView", "Ringing Call Type is unknown");
return;
}
this.M = str;
this.T = i;
this.P = this.T == 10;
if (!this.k) {
this.k = true;
Main.f1278b.execute(new ay(this));
}
}
public void g() {
e();
i();
try {
this.f.addView(this.j, this.g);
Main.f1278b.execute(new az(this));
} catch (Exception e2) {
this.k = false;
this.j = null;
e = null;
h();
e2.printStackTrace();
}
}
public void a(int i) {
new Handler().postDelayed(new ba(this), i);
}
public void a() {
com.chinamobile.contacts.im.utils.aq.d("whj", "----isShowing----" + this.k);
try {
if (this.k) {
if (this.j != null) {
this.f.removeView(this.j);
this.k = false;
}
this.j = null;
e = null;
h();
com.chinamobile.contacts.im.utils.aq.d("long", "Recycle! isShowing = " + this.k + " mcallshow = " + this.j);
}
} catch (Exception e2) {
}
}
private void h() {
if (this.u != null) {
this.u.setImageBitmap(null);
}
if (this.x != null) {
this.x.recycle();
}
if (this.y != null) {
this.y.recycle();
}
}
private void i() {
this.g = new WindowManager.LayoutParams();
this.g.type = 2010;
this.g.format = 1;
this.g.flags = 40;
this.g.gravity = 16;
this.g.y = -100;
this.g.width = ApplicationUtils.dip2px(this.L, 320.0f);
this.g.height = ApplicationUtils.dip2px(this.L, 160.0f);
if (Build.MODEL.equals("Lenovo A320t") || Build.MODEL.equals("E601M") || Build.MODEL.equals("Lenovo A5800-D") || Build.MODEL.equals("KONKA L813")) {
this.g.height = ApplicationUtils.dip2px(this.L, 300.0f);
}
if (Build.MODEL.equals("HUAWEI G628-TL00")) {
this.g.height = ApplicationUtils.dip2px(this.L, 330.0f);
}
this.g.windowAnimations = C0019R.style.call_show_anim;
((RelativeLayout.LayoutParams) this.F.getLayoutParams()).height = ApplicationUtils.dip2px(this.L, 160.0f);
}
public void j() {
if (this.R) {
this.s.setVisibility(0);
this.v.setVisibility(0);
}
if (com.chinamobile.contacts.im.cloudserver.ah.a().a(this.L, this.M)) {
this.s.setText("家庭网");
this.s.setVisibility(0);
this.v.setVisibility(0);
}
this.A = TextUtils.isEmpty(this.A) ? "" : this.A;
this.B = TextUtils.isEmpty(this.B) ? "" : this.B;
this.n.setText(this.z);
this.r.setText(this.D);
this.o.setText(this.A + " " + this.B);
this.q.setText(this.C);
if (this.x != null && !this.x.isRecycled()) {
this.u.setImageBitmap(this.x);
} else {
this.Y = com.chinamobile.contacts.im.utils.bi.a().a(this.M, this.u, 0);
}
if (!l() && !this.R) {
m();
}
if (this.N != null && !this.N.isEmpty()) {
this.O.removeAllViews();
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(-2, -2);
layoutParams.rightMargin = ApplicationUtils.dip2px(this.L, 5.0f);
layoutParams.topMargin = ApplicationUtils.dip2px(this.L, 5.0f);
for (com.chinamobile.icloud.im.sync.a.n nVar : this.N) {
TextView textView = new TextView(this.L);
textView.setText(nVar.a());
textView.setTextColor(this.L.getResources().getColor(C0019R.color.white));
textView.setBackgroundResource(com.chinamobile.contacts.im.contacts.d.m.a(0));
textView.setSingleLine();
textView.setEllipsize(TextUtils.TruncateAt.END);
if (!TextUtils.isEmpty(textView.getText())) {
this.O.addView(textView, layoutParams);
}
}
}
if (Build.MODEL.equals(MultiSimCardAccessor.MODEL_HTC_RHYME_S510B)) {
com.chinamobile.contacts.im.utils.aq.d("whj", "状态" + ((TelephonyManager) this.L.getSystemService(PhoneConstants.PHONE_KEY)).getCallState());
a(BaseImageDownloader.DEFAULT_HTTP_CONNECT_TIMEOUT);
}
}
@Override
public void onClick(View view) {
switch (view.getId()) {
case C0019R.id.ringing_call_close:
MobclickAgent.onEvent(this.L, "cloudServer_incomingShow_closeBtn");
a();
return;
default:
return;
}
}
@Override
@SuppressLint({"ClickableViewAccessibility"})
public boolean onTouch(View view, MotionEvent motionEvent) {
switch (motionEvent.getAction()) {
case 0:
this.f1602a = (int) motionEvent.getRawX();
this.f1603b = (int) motionEvent.getRawY();
this.c = this.g.x;
this.d = this.g.y;
break;
case 1:
a(motionEvent);
this.i = 0.0f;
this.h = 0.0f;
break;
case 2:
try {
a(motionEvent);
break;
} catch (Exception e2) {
e2.printStackTrace();
break;
}
}
if (view == this.j && motionEvent.getAction() == 1) {
a();
try {
this.f.removeView(view);
return false;
} catch (Exception e3) {
e3.printStackTrace();
return false;
}
}
return false;
}
private void a(MotionEvent motionEvent) {
try {
int rawX = ((int) motionEvent.getRawX()) - this.f1602a;
int rawY = ((int) motionEvent.getRawY()) - this.f1603b;
this.g.x = rawX + this.c;
this.g.y = rawY + this.d;
this.f.updateViewLayout(this.j, this.g);
} catch (Throwable th) {
th.printStackTrace();
}
}
public boolean k() {
return ((TelephonyManager) this.L.getSystemService(PhoneConstants.PHONE_KEY)).getCallState() == 1;
}
private boolean l() {
return this.E != null;
}
public NotificationManager b() {
if (this.Z == null) {
this.Z = (NotificationManager) this.L.getSystemService("notification");
}
return this.Z;
}
private void m() {
com.chinamobile.contacts.im.call.c.c b2 = com.chinamobile.contacts.im.call.b.h.a().b(this.M);
com.chinamobile.contacts.im.utils.aq.d("whj", "标记");
if (b2 != null) {
if (b2.b() == com.aspire.strangecallssdk.a.b.l) {
this.o.setText("由我贡献的标记 " + b2.a().toString());
} else {
this.o.setText(b2.toString());
}
if (!this.Y) {
a(b2);
if (this.x != null && !this.x.isRecycled()) {
this.u.setImageBitmap(this.x);
return;
}
return;
}
return;
}
Main.f1278b.execute(new bb(this));
}
public void a(com.chinamobile.contacts.im.call.c.c cVar) {
if (cVar != null) {
if (cVar.a().contains("骚扰")) {
this.x = b(C0019R.drawable.ico_sr);
return;
}
if (cVar.a().contains("诈骗")) {
this.x = b(C0019R.drawable.ico_zp);
return;
}
if (cVar.a().contains("推销")) {
this.x = b(C0019R.drawable.ico_ggtx);
return;
}
if (cVar.a().contains("快递")) {
this.x = b(C0019R.drawable.ico_kd);
return;
} else if (cVar.a().contains("中介")) {
this.x = b(C0019R.drawable.ico_fczj);
return;
} else {
this.x = null;
return;
}
}
this.x = null;
}
private Bitmap b(int i) {
try {
return BitmapFactory.decodeStream(this.L.getResources().openRawResource(i));
} catch (Exception e2) {
e2.printStackTrace();
return null;
}
}
}