package i2p.bote.android.identities; import android.app.Activity; import android.content.Intent; import android.graphics.Bitmap; import android.os.Bundle; import android.view.View; import android.view.ViewGroup; import java.io.IOException; import java.security.GeneralSecurityException; import i2p.bote.android.R; import i2p.bote.android.util.BoteHelper; import i2p.bote.android.util.ViewAddressFragment; import i2p.bote.email.EmailIdentity; import i2p.bote.fileencryption.PasswordException; public class ViewIdentityFragment extends ViewAddressFragment { private EmailIdentity mIdentity; public static ViewIdentityFragment newInstance(String key) { ViewIdentityFragment f = new ViewIdentityFragment(); Bundle args = new Bundle(); args.putString(ADDRESS, key); f.setArguments(args); return f; } @Override protected void loadAddress() { try { mIdentity = BoteHelper.getIdentity(mAddress); if (mIdentity == null) { // No identity found, finish getActivity().setResult(Activity.RESULT_CANCELED); getActivity().finish(); } } catch (PasswordException e) { // TODO Handle e.printStackTrace(); } catch (IOException e) { // TODO Handle e.printStackTrace(); } catch (GeneralSecurityException e) { // TODO Handle e.printStackTrace(); } } @Override protected String getPublicName() { return mIdentity.getPublicName(); } @Override protected int getDeleteAddressMessage() { return R.string.delete_identity; } @Override public void onResume() { super.onResume(); Bitmap picture = BoteHelper.decodePicture(mIdentity.getPictureBase64()); if (picture != null) mPicture.setImageBitmap(picture); else { ViewGroup.LayoutParams lp = mPicture.getLayoutParams(); mPicture.setImageBitmap(BoteHelper.getIdenticonForAddress(mAddress, lp.width, lp.height)); } mPublicName.setText(mIdentity.getPublicName()); if (mIdentity.getDescription().isEmpty()) mDescription.setVisibility(View.GONE); else { mDescription.setText(mIdentity.getDescription()); mDescription.setVisibility(View.VISIBLE); } mCryptoImplName.setText(mIdentity.getCryptoImpl().getName()); } @Override protected void onEditAddress() { Intent ei = new Intent(getActivity(), EditIdentityActivity.class); ei.putExtra(EditIdentityFragment.IDENTITY_KEY, mAddress); startActivity(ei); } @Override protected void onDeleteAddress() { try { BoteHelper.deleteIdentity(mAddress); getActivity().setResult(Activity.RESULT_OK); getActivity().finish(); } catch (PasswordException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (GeneralSecurityException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }