导航菜单

页面标题

页面副标题

CallApp v2.226 - IdentifyContactsActivity.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;
        }
    }
}