1) There is no longer a concept of "verified" or "unverified." Only "what we saw last time" and "different from last time." 2) Let's eliminate "verify session," since we're all about identity keys now. 3) Mark manually processed key exchanges as processed.
90 lines
No EOL
3 KiB
Java
90 lines
No EOL
3 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.v4.app.LoaderManager;
|
|
import android.support.v4.content.Loader;
|
|
import android.view.LayoutInflater;
|
|
import android.view.View;
|
|
import android.view.ViewGroup;
|
|
import android.widget.CursorAdapter;
|
|
import android.widget.ListView;
|
|
|
|
import com.actionbarsherlock.app.SherlockListFragment;
|
|
import org.thoughtcrime.securesms.crypto.MasterSecret;
|
|
import org.thoughtcrime.securesms.database.DatabaseFactory;
|
|
import org.thoughtcrime.securesms.database.IdentityDatabase;
|
|
import org.thoughtcrime.securesms.database.loaders.IdentityLoader;
|
|
|
|
public class ReviewIdentitiesFragment extends SherlockListFragment
|
|
implements LoaderManager.LoaderCallbacks<Cursor>
|
|
{
|
|
private MasterSecret masterSecret;
|
|
|
|
@Override
|
|
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle bundle) {
|
|
return inflater.inflate(R.layout.review_identities_fragment, container, false);
|
|
}
|
|
|
|
@Override
|
|
public void onActivityCreated(Bundle bundle) {
|
|
super.onActivityCreated(bundle);
|
|
this.masterSecret = getSherlockActivity().getIntent().getParcelableExtra("master_secret");
|
|
|
|
initializeListAdapter();
|
|
getLoaderManager().initLoader(0, null, this);
|
|
}
|
|
|
|
@Override
|
|
public void onListItemClick(ListView listView, View view, int position, long id) {
|
|
Intent viewIntent = new Intent(getActivity(), ViewIdentityActivity.class);
|
|
viewIntent.putExtra("identity_key", ((IdentityKeyView)view).getIdentityKey());
|
|
startActivity(viewIntent);
|
|
}
|
|
|
|
private void initializeListAdapter() {
|
|
this.setListAdapter(new IdentitiesListAdapter(getActivity(), null, masterSecret));
|
|
getLoaderManager().restartLoader(0, null, this);
|
|
}
|
|
|
|
@Override
|
|
public Loader<Cursor> onCreateLoader(int id, Bundle args) {
|
|
return new IdentityLoader(getActivity());
|
|
}
|
|
|
|
@Override
|
|
public void onLoadFinished(Loader<Cursor> loader, Cursor cursor) {
|
|
((CursorAdapter)getListAdapter()).changeCursor(cursor);
|
|
}
|
|
|
|
@Override
|
|
public void onLoaderReset(Loader<Cursor> loader) {
|
|
((CursorAdapter)getListAdapter()).changeCursor(null);
|
|
}
|
|
|
|
private class IdentitiesListAdapter extends CursorAdapter {
|
|
private final MasterSecret masterSecret;
|
|
|
|
public IdentitiesListAdapter(Context context, Cursor cursor, MasterSecret masterSecret) {
|
|
super(context, cursor);
|
|
this.masterSecret = masterSecret;
|
|
}
|
|
|
|
@Override
|
|
public void bindView(View view, Context context, Cursor cursor) {
|
|
IdentityDatabase.Reader reader = DatabaseFactory.getIdentityDatabase(context)
|
|
.readerFor(masterSecret, cursor);
|
|
|
|
((IdentityKeyView)view).set(reader.getCurrent());
|
|
}
|
|
|
|
@Override
|
|
public View newView(Context context, Cursor cursor, ViewGroup parent) {
|
|
IdentityKeyView identityKeyView = new IdentityKeyView(context);
|
|
bindView(identityKeyView, context, cursor);
|
|
return identityKeyView;
|
|
}
|
|
}
|
|
} |