You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			144 lines
		
	
	
		
			4.5 KiB
		
	
	
	
		
			Java
		
	
			
		
		
	
	
			144 lines
		
	
	
		
			4.5 KiB
		
	
	
	
		
			Java
		
	
package org.thoughtcrime.securesms;
 | 
						|
 | 
						|
import android.content.Context;
 | 
						|
import android.content.Intent;
 | 
						|
import android.database.Cursor;
 | 
						|
import android.os.Bundle;
 | 
						|
import android.support.annotation.NonNull;
 | 
						|
import android.support.annotation.Nullable;
 | 
						|
import android.support.v4.app.ListFragment;
 | 
						|
import android.support.v4.app.LoaderManager;
 | 
						|
import android.support.v4.content.Loader;
 | 
						|
import android.support.v4.widget.CursorAdapter;
 | 
						|
import android.view.LayoutInflater;
 | 
						|
import android.view.MenuItem;
 | 
						|
import android.view.View;
 | 
						|
import android.view.ViewGroup;
 | 
						|
import android.widget.AdapterView;
 | 
						|
import android.widget.ListView;
 | 
						|
 | 
						|
import org.thoughtcrime.securesms.database.Address;
 | 
						|
import org.thoughtcrime.securesms.database.loaders.BlockedContactsLoader;
 | 
						|
import org.thoughtcrime.securesms.mms.GlideApp;
 | 
						|
import org.thoughtcrime.securesms.mms.GlideRequests;
 | 
						|
import org.thoughtcrime.securesms.preferences.BlockedContactListItem;
 | 
						|
import org.thoughtcrime.securesms.recipients.Recipient;
 | 
						|
import org.thoughtcrime.securesms.util.DynamicLanguage;
 | 
						|
import org.thoughtcrime.securesms.util.DynamicTheme;
 | 
						|
 | 
						|
import network.loki.messenger.R;
 | 
						|
 | 
						|
public class BlockedContactsActivity extends PassphraseRequiredActionBarActivity {
 | 
						|
 | 
						|
  private final DynamicTheme    dynamicTheme    = new DynamicTheme();
 | 
						|
  private final DynamicLanguage dynamicLanguage = new DynamicLanguage();
 | 
						|
 | 
						|
  @Override
 | 
						|
  public void onPreCreate() {
 | 
						|
    dynamicTheme.onCreate(this);
 | 
						|
    dynamicLanguage.onCreate(this);
 | 
						|
  }
 | 
						|
 | 
						|
 | 
						|
  @Override
 | 
						|
  public void onCreate(Bundle bundle, boolean ready) {
 | 
						|
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);
 | 
						|
    getSupportActionBar().setTitle(R.string.BlockedContactsActivity_blocked_contacts);
 | 
						|
    initFragment(android.R.id.content, new BlockedContactsFragment());
 | 
						|
  }
 | 
						|
 | 
						|
  @Override
 | 
						|
  public void onResume() {
 | 
						|
    super.onResume();
 | 
						|
    dynamicTheme.onResume(this);
 | 
						|
    dynamicLanguage.onResume(this);
 | 
						|
  }
 | 
						|
 | 
						|
  @Override
 | 
						|
  public boolean onOptionsItemSelected(MenuItem item) {
 | 
						|
    switch (item.getItemId()) {
 | 
						|
      case android.R.id.home: finish(); return true;
 | 
						|
    }
 | 
						|
 | 
						|
    return false;
 | 
						|
  }
 | 
						|
 | 
						|
  public static class BlockedContactsFragment
 | 
						|
      extends ListFragment
 | 
						|
      implements LoaderManager.LoaderCallbacks<Cursor>, ListView.OnItemClickListener
 | 
						|
  {
 | 
						|
 | 
						|
    @Override
 | 
						|
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle bundle) {
 | 
						|
      return inflater.inflate(R.layout.blocked_contacts_fragment, container, false);
 | 
						|
    }
 | 
						|
 | 
						|
    @Override
 | 
						|
    public void onCreate(Bundle bundle) {
 | 
						|
      super.onCreate(bundle);
 | 
						|
      setListAdapter(new BlockedContactAdapter(getActivity(), GlideApp.with(this), null));
 | 
						|
      getLoaderManager().initLoader(0, null, this);
 | 
						|
    }
 | 
						|
 | 
						|
    @Override
 | 
						|
    public void onActivityCreated(Bundle bundle) {
 | 
						|
      super.onActivityCreated(bundle);
 | 
						|
      getListView().setOnItemClickListener(this);
 | 
						|
    }
 | 
						|
 | 
						|
    @Override
 | 
						|
    public @NonNull Loader<Cursor> onCreateLoader(int id, Bundle args) {
 | 
						|
      return new BlockedContactsLoader(getActivity());
 | 
						|
    }
 | 
						|
 | 
						|
    @Override
 | 
						|
    public void onLoadFinished(@NonNull Loader<Cursor> loader, Cursor data) {
 | 
						|
      if (getListAdapter() != null) {
 | 
						|
        ((CursorAdapter) getListAdapter()).changeCursor(data);
 | 
						|
      }
 | 
						|
    }
 | 
						|
 | 
						|
    @Override
 | 
						|
    public void onLoaderReset(@NonNull Loader<Cursor> loader) {
 | 
						|
      if (getListAdapter() != null) {
 | 
						|
        ((CursorAdapter) getListAdapter()).changeCursor(null);
 | 
						|
      }
 | 
						|
    }
 | 
						|
 | 
						|
    @Override
 | 
						|
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
 | 
						|
      Recipient recipient = ((BlockedContactListItem)view).getRecipient();
 | 
						|
      Intent    intent    = new Intent(getActivity(), RecipientPreferenceActivity.class);
 | 
						|
      intent.putExtra(RecipientPreferenceActivity.ADDRESS_EXTRA, recipient.getAddress());
 | 
						|
 | 
						|
      startActivity(intent);
 | 
						|
    }
 | 
						|
 | 
						|
    private static class BlockedContactAdapter extends CursorAdapter {
 | 
						|
 | 
						|
      private final GlideRequests glideRequests;
 | 
						|
 | 
						|
      BlockedContactAdapter(@NonNull Context context, @NonNull GlideRequests glideRequests, @Nullable Cursor c) {
 | 
						|
        super(context, c);
 | 
						|
        this.glideRequests = glideRequests;
 | 
						|
      }
 | 
						|
 | 
						|
      @Override
 | 
						|
      public View newView(Context context, Cursor cursor, ViewGroup parent) {
 | 
						|
        return LayoutInflater.from(context)
 | 
						|
                             .inflate(R.layout.blocked_contact_list_item, parent, false);
 | 
						|
      }
 | 
						|
 | 
						|
      @Override
 | 
						|
      public void bindView(View view, Context context, Cursor cursor) {
 | 
						|
        String    address   = cursor.getString(1);
 | 
						|
        Recipient recipient = Recipient.from(context, Address.fromSerialized(address), true);
 | 
						|
 | 
						|
        ((BlockedContactListItem) view).set(glideRequests, recipient);
 | 
						|
      }
 | 
						|
    }
 | 
						|
 | 
						|
  }
 | 
						|
 | 
						|
}
 |