正在查看: CallApp v2.226 应用的 IdentifyContactsActivity.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
正在查看: CallApp v2.226 应用的 IdentifyContactsActivity.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
package com.callapp.contacts.activity.identify;
import android.content.ContentProviderOperation;
import android.content.ContentResolver;
import android.content.Context;
import android.content.Intent;
import android.database.Cursor;
import android.graphics.PorterDuff;
import android.graphics.PorterDuffColorFilter;
import android.os.Bundle;
import android.provider.ContactsContract;
import android.view.View;
import android.view.animation.AlphaAnimation;
import android.view.animation.Animation;
import android.widget.ImageView;
import android.widget.ProgressBar;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.appcompat.widget.Toolbar;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.amazon.device.ads.l;
import com.callapp.contacts.CallAppApplication;
import com.callapp.contacts.R;
import com.callapp.contacts.activity.base.BaseNoTitleActivity;
import com.callapp.contacts.activity.contact.list.MemoryContactItem;
import com.callapp.contacts.activity.identify.IdentifyContactsAdapter;
import com.callapp.contacts.activity.interfaces.IdentifyContactsChangedListener;
import com.callapp.contacts.event.EventBusManager;
import com.callapp.contacts.framework.dao.column.BooleanColumn;
import com.callapp.contacts.manager.analytics.AnalyticsManager;
import com.callapp.contacts.manager.contacts.ContactUtils;
import com.callapp.contacts.manager.preferences.Prefs;
import com.callapp.contacts.model.Constants;
import com.callapp.contacts.util.Activities;
import com.callapp.contacts.util.CLog;
import com.callapp.contacts.util.IoUtils;
import com.callapp.contacts.util.ThemeUtils;
import com.callapp.contacts.util.ViewUtils;
import com.callapp.contacts.util.animation.AnimationListenerAdapter;
import com.callapp.contacts.util.date.DateUtils;
import com.callapp.framework.util.CollectionUtils;
import com.callapp.framework.util.StringUtils;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Set;
import java.util.concurrent.TimeUnit;
public class IdentifyContactsActivity extends BaseNoTitleActivity implements IdentifyContactsAdapter.OnIdentifyContactClickListener {
static final long THRESHOLD_DAYS_RECHECK = 2;
private IdentifyContactsAdapter adapter;
private ArrayList<IdentifyContactsData> dataArray;
private View dataContainer;
private View emptyViewContainer;
private IdentifyContactsChangedListener identifyContactsChangedListener = new IdentifyContactsChangedListener() {
@Override
public final void a() {
IdentifyContactsActivity.this.refreshData();
}
};
private boolean isExitToEditScreen = false;
private ProgressBar loadingContainer;
private RecyclerView recyclerView;
private void initEmptyView() {
this.emptyViewContainer = findViewById(R.id.emptyViewContainer);
TextView textView = (TextView) findViewById(R.id.emptyViewTitle);
textView.setText(Activities.getString(R.string.text_identify_contacts_empty_title));
textView.setTextColor(ThemeUtils.getColor(R.color.colorPrimary));
TextView textView2 = (TextView) findViewById(R.id.emptyViewSubtitle);
textView2.setText(Activities.getString(R.string.text_please_check_again_later));
textView2.setTextColor(ThemeUtils.getColor(R.color.secondary_text_color));
}
private void initHintContainer() {
final View findViewById = findViewById(R.id.hintContainer);
if (!Prefs.g5.get().booleanValue()) {
findViewById.setVisibility(8);
return;
}
findViewById.setBackgroundColor(ThemeUtils.getColor(R.color.background));
ImageView imageView = (ImageView) l.g(R.string.text_identify_contacts_hint, (TextView) findViewById.findViewById(R.id.hintText), R.color.secondary_text_color, findViewById, R.id.hintCloseButton);
imageView.setColorFilter(new PorterDuffColorFilter(ThemeUtils.getColor(R.color.icon), PorterDuff.Mode.SRC_IN));
imageView.setOnClickListener(new View.OnClickListener(this) {
@Override
public final void onClick(View view) {
AlphaAnimation alphaAnimation = new AlphaAnimation(1.0f, 0.0f);
alphaAnimation.setDuration(500L);
alphaAnimation.setAnimationListener(new AnimationListenerAdapter() {
@Override
public final void onAnimationEnd(Animation animation) {
findViewById.setVisibility(8);
Prefs.g5.set(Boolean.FALSE);
}
});
findViewById.startAnimation(alphaAnimation);
}
});
}
public void initList(@NonNull Set<Long> set) {
List<MemoryContactItem> contactsWithPhoneNumber = ContactUtils.getContactsWithPhoneNumber();
this.dataArray = new ArrayList<>();
for (MemoryContactItem memoryContactItem : contactsWithPhoneNumber) {
if (set.contains(Long.valueOf(memoryContactItem.getContactId()))) {
IdentifyContactsData identifyContactsData = new IdentifyContactsData();
identifyContactsData.setSuggestedContactId(memoryContactItem.getContactId());
identifyContactsData.setSuggestedPhone(memoryContactItem.getPhone());
this.dataArray.add(identifyContactsData);
}
}
if (CollectionUtils.f(this.dataArray)) {
showEmptyView();
return;
}
IdentifyContactsAdapter identifyContactsAdapter = new IdentifyContactsAdapter(this.dataArray, this);
this.adapter = identifyContactsAdapter;
this.recyclerView.setAdapter(identifyContactsAdapter);
}
private void initViews() {
findViewById(R.id.rootView).setBackgroundColor(ThemeUtils.getColor(R.color.background));
initHintContainer();
initEmptyView();
this.dataContainer = findViewById(R.id.dataContainer);
Toolbar findViewById = findViewById(R.id.toolbar);
findViewById.setTitle("");
findViewById.setBackgroundColor(ThemeUtils.getColor(R.color.background));
setSupportActionBar(findViewById);
getSupportActionBar().u(ViewUtils.i(R.drawable.ic_top_bar_back, Integer.valueOf(ThemeUtils.getColor(R.color.icon))));
getSupportActionBar().r(true);
TextView textView = (TextView) findViewById(R.id.header);
textView.setText(Activities.getString(R.string.text_suggested_by_callapp));
textView.setTextColor(ThemeUtils.getColor(R.color.colorPrimary));
findViewById(R.id.divider).setBackgroundColor(ThemeUtils.getColor(R.color.separate_line));
RecyclerView findViewById2 = findViewById(R.id.recyclerView);
this.recyclerView = findViewById2;
findViewById2.setLayoutManager(new LinearLayoutManager(this));
this.loadingContainer = (ProgressBar) findViewById(R.id.loadingContainer);
refreshData();
}
public void refreshData() {
final Set<Long> set = Prefs.e5.get();
final long d = DateUtils.d(new Date(Prefs.f5.get().longValue()), new Date(System.currentTimeMillis()), TimeUnit.DAYS);
CallAppApplication.get().runOnMainThread(new Runnable() {
@Override
public final void run() {
long j = d;
IdentifyContactsActivity identifyContactsActivity = IdentifyContactsActivity.this;
if (j > IdentifyContactsActivity.THRESHOLD_DAYS_RECHECK) {
identifyContactsActivity.loadingContainer.setVisibility(0);
identifyContactsActivity.dataContainer.setVisibility(8);
identifyContactsActivity.emptyViewContainer.setVisibility(8);
IdentifyContactsTaskManager.a();
return;
}
Set set2 = set;
if (set2 == null || set2.size() == 0) {
identifyContactsActivity.showEmptyView();
AnalyticsManager.get().q(Constants.OPTIMIZE_CONTACTS, "Identify contacts screen shown", "Number of contacts to optimize", 0.0d, new String[0]);
return;
}
identifyContactsActivity.loadingContainer.setVisibility(8);
identifyContactsActivity.emptyViewContainer.setVisibility(8);
identifyContactsActivity.dataContainer.setVisibility(0);
identifyContactsActivity.initList(set2);
AnalyticsManager.get().q(Constants.OPTIMIZE_CONTACTS, "Identify contacts screen shown", "Number of contacts to optimize", set2.size(), new String[0]);
}
});
}
public static void show(Context context) {
context.startActivity(new Intent(context, (Class<?>) IdentifyContactsActivity.class));
}
public void showEmptyView() {
this.dataContainer.setVisibility(8);
this.loadingContainer.setVisibility(8);
this.emptyViewContainer.setVisibility(0);
}
@Override
public int getLayoutResourceId() {
return R.layout.activity_identify_contact;
}
@Override
public void onCreate(Bundle bundle) {
super.onCreate(bundle);
EventBusManager.a.a(IdentifyContactsChangedListener.a, this.identifyContactsChangedListener);
AnalyticsManager.get().o(Constants.OPTIMIZE_CONTACTS, "Identify contacts screen shown");
initViews();
}
@Override
public void onDestroy() {
EventBusManager.a.f(IdentifyContactsChangedListener.a, this.identifyContactsChangedListener);
super.onDestroy();
}
@Override
public void onDismissClicked(int i) {
if (i >= 0 && i < this.dataArray.size()) {
this.dataArray.remove(i);
}
if (CollectionUtils.f(this.dataArray)) {
showEmptyView();
} else {
this.adapter.notifyItemRemoved(i);
}
}
@Override
public void onResume() {
super.onResume();
if (this.isExitToEditScreen) {
this.isExitToEditScreen = false;
refreshData();
}
}
@Override
public void onSaveClicked(int i) {
Cursor cursor = null;
Prefs.e5.set(null);
Prefs.f5.set(-1L);
this.isExitToEditScreen = true;
long suggestedContactId = this.dataArray.get(i).getSuggestedContactId();
String loadedName = this.dataArray.get(i).getLoadedName();
BooleanColumn booleanColumn = ContactUtils.a;
try {
try {
cursor = getContentResolver().query(ContactsContract.RawContacts.CONTENT_URI, new String[]{"_id"}, "contact_id = ?", new String[]{String.valueOf(suggestedContactId)}, null);
if (cursor == null || !cursor.moveToFirst()) {
IoUtils.b(cursor);
return;
}
String string = cursor.getString(cursor.getColumnIndex("_id"));
ContentResolver contentResolver = getContentResolver();
ArrayList<ContentProviderOperation> arrayList = new ArrayList<>();
arrayList.add(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI).withValue("raw_contact_id", string).withValue("mimetype", "vnd.android.cursor.item/name").withValue("data1", loadedName).build());
contentResolver.applyBatch("com.android.contacts", arrayList);
StringUtils.I(ContactUtils.class);
CLog.a();
IoUtils.b(cursor);
onDismissClicked(i);
} catch (Exception e) {
CLog.b(ContactUtils.class, e);
IoUtils.b(cursor);
}
} catch (Throwable th) {
IoUtils.b(cursor);
throw th;
}
}
}