package com.fsck.k9.ui.messageview; import android.content.Context; import android.util.AttributeSet; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewStub; import com.fsck.k9.R; import com.fsck.k9.mailstore.AttachmentViewInfo; import com.fsck.k9.view.ToolableViewAnimator; public class LockedAttachmentView extends ToolableViewAnimator implements OnClickListener { private ViewStub attachmentViewStub; private AttachmentViewInfo attachment; private AttachmentViewCallback attachmentCallback; public LockedAttachmentView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); } public LockedAttachmentView(Context context, AttributeSet attrs) { super(context, attrs); } public LockedAttachmentView(Context context) { super(context); } @Override protected void onFinishInflate() { super.onFinishInflate(); if (isInEditMode()) { return; } View unlockButton = findViewById(R.id.locked_button); unlockButton.setOnClickListener(this); attachmentViewStub = (ViewStub) findViewById(R.id.attachment_stub); } @Override public void onClick(View view) { switch (view.getId()) { case R.id.locked_button: { showUnlockedView(); break; } } } private void showUnlockedView() { if (attachmentViewStub == null) { throw new IllegalStateException("Cannot display unlocked attachment!"); } AttachmentView attachmentView = (AttachmentView) attachmentViewStub.inflate(); attachmentView.setAttachment(attachment); attachmentView.setCallback(attachmentCallback); attachmentViewStub = null; setDisplayedChild(1); } public void setAttachment(AttachmentViewInfo attachment) { this.attachment = attachment; } public void setCallback(AttachmentViewCallback attachmentCallback) { this.attachmentCallback = attachmentCallback; } }