导航菜单

页面标题

页面副标题

Delta Chat v1.58.3 - BlockedContactsActivity.java 源代码

正在查看: Delta Chat v1.58.3 应用的 BlockedContactsActivity.java JAVA 源代码文件

本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。


package org.thoughtcrime.securesms;

import android.content.DialogInterface;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import androidx.appcompat.app.AlertDialog;
import androidx.fragment.app.Fragment;
import androidx.loader.app.LoaderManager;
import androidx.loader.content.Loader;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.b44t.messenger.DcEvent;
import org.thoughtcrime.securesms.BlockedContactsActivity;
import org.thoughtcrime.securesms.connect.DcContactsLoader;
import org.thoughtcrime.securesms.connect.DcEventCenter;
import org.thoughtcrime.securesms.connect.DcHelper;
import org.thoughtcrime.securesms.contacts.ContactSelectionListAdapter;
import org.thoughtcrime.securesms.contacts.ContactSelectionListItem;
import org.thoughtcrime.securesms.mms.GlideApp;
import org.thoughtcrime.securesms.util.ViewUtil;

public class BlockedContactsActivity extends PassphraseRequiredActionBarActivity {
    @Override
    public void onCreate(Bundle bundle, boolean z) {
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
        getSupportActionBar().setTitle(R.string.pref_blocked_contacts);
        initFragment(android.R.id.content, new BlockedAndShareContactsFragment(), getIntent().getExtras());
    }

    public boolean onOptionsItemSelected(MenuItem menuItem) {
        if (menuItem.getItemId() != 16908332) {
            return false;
        }
        finish();
        return true;
    }

    public static class BlockedAndShareContactsFragment extends Fragment implements LoaderManager.LoaderCallbacks<DcContactsLoader.Ret>, DcEventCenter.DcEventDelegate, ContactSelectionListAdapter.ItemClickListener {
        private TextView emptyStateView;
        private RecyclerView recyclerView;

        @Override
        public void onItemLongClick(ContactSelectionListItem contactSelectionListItem) {
        }

        @Override
        public boolean runOnMain() {
            return DcEventCenter.DcEventDelegate.CC.$default$runOnMain(this);
        }

        public void onLoadFinished(Loader loader, Object obj) {
            onLoadFinished((Loader<DcContactsLoader.Ret>) loader, (DcContactsLoader.Ret) obj);
        }

        public View onCreateView(LayoutInflater layoutInflater, ViewGroup viewGroup, Bundle bundle) {
            View inflate = layoutInflater.inflate(R.layout.contact_selection_list_fragment, viewGroup, false);
            RecyclerView findById = ViewUtil.findById(inflate, R.id.recycler_view);
            this.recyclerView = findById;
            findById.setLayoutManager(new LinearLayoutManager(getActivity()));
            TextView textView = (TextView) ViewUtil.findById(inflate, android.R.id.empty);
            this.emptyStateView = textView;
            textView.setText(R.string.blocked_empty_hint);
            return inflate;
        }

        public void onCreate(Bundle bundle) {
            super.onCreate(bundle);
            getLoaderManager().initLoader(0, (Bundle) null, this);
        }

        public void onActivityCreated(Bundle bundle) {
            super.onActivityCreated(bundle);
            initializeAdapter();
        }

        private void initializeAdapter() {
            this.recyclerView.setAdapter(new ContactSelectionListAdapter(getActivity(), GlideApp.with(this), this, false, false));
        }

        public Loader<DcContactsLoader.Ret> onCreateLoader(int i, Bundle bundle) {
            return new DcContactsLoader(getActivity(), -1, null, false, false, false, true);
        }

        public void onLoadFinished(Loader<DcContactsLoader.Ret> loader, DcContactsLoader.Ret ret) {
            ContactSelectionListAdapter contactSelectionListAdapter = getContactSelectionListAdapter();
            if (contactSelectionListAdapter != null) {
                contactSelectionListAdapter.changeData(ret);
                TextView textView = this.emptyStateView;
                if (textView != null) {
                    textView.setVisibility(contactSelectionListAdapter.getItemCount() > 0 ? 8 : 0);
                }
            }
        }

        public void onLoaderReset(Loader<DcContactsLoader.Ret> loader) {
            getContactSelectionListAdapter().changeData(null);
        }

        @Override
        public void handleEvent(DcEvent dcEvent) {
            if (dcEvent.getId() == 2030) {
                restartLoader();
            }
        }

        private void restartLoader() {
            getLoaderManager().restartLoader(0, (Bundle) null, this);
        }

        private ContactSelectionListAdapter getContactSelectionListAdapter() {
            return (ContactSelectionListAdapter) this.recyclerView.getAdapter();
        }

        @Override
        public void onItemClick(final ContactSelectionListItem contactSelectionListItem, boolean z) {
            new AlertDialog.Builder(getActivity()).setMessage(R.string.ask_unblock_contact).setCancelable(true).setNegativeButton(android.R.string.cancel, (DialogInterface.OnClickListener) null).setPositiveButton(R.string.menu_unblock_contact, new DialogInterface.OnClickListener() {
                @Override
                public final void onClick(DialogInterface dialogInterface, int i) {
                    BlockedContactsActivity.BlockedAndShareContactsFragment.this.m1173xbab80c4a(contactSelectionListItem, dialogInterface, i);
                }
            }).show();
        }

        void m1173xbab80c4a(ContactSelectionListItem contactSelectionListItem, DialogInterface dialogInterface, int i) {
            unblockContact(contactSelectionListItem.getContactId());
        }

        private void unblockContact(int i) {
            DcHelper.getContext(getContext()).blockContact(i, 0);
            restartLoader();
        }
    }
}