Do MessageTopView initialization in onFinishInflate()

This commit is contained in:
cketti 2015-02-17 18:04:52 +01:00
parent 160b9eb354
commit cac1f1ca0d
2 changed files with 15 additions and 18 deletions

View File

@ -3,7 +3,6 @@ package com.fsck.k9.ui.messageview;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import android.app.Fragment;
import android.content.Context; import android.content.Context;
import android.util.AttributeSet; import android.util.AttributeSet;
import android.util.Log; import android.util.Log;
@ -31,7 +30,6 @@ public class MessageTopView extends LinearLayout implements ShowPicturesControll
private MessageHeader mHeaderContainer; private MessageHeader mHeaderContainer;
private LayoutInflater mInflater; private LayoutInflater mInflater;
private LinearLayout containerViews; private LinearLayout containerViews;
private Fragment fragment;
private Button mDownloadRemainder; private Button mDownloadRemainder;
private AttachmentViewCallback attachmentCallback; private AttachmentViewCallback attachmentCallback;
private OpenPgpHeaderViewCallback openPgpHeaderViewCallback; private OpenPgpHeaderViewCallback openPgpHeaderViewCallback;
@ -43,15 +41,11 @@ public class MessageTopView extends LinearLayout implements ShowPicturesControll
super(context, attrs); super(context, attrs);
} }
public void initialize (Fragment fragment, AttachmentViewCallback attachmentCallback, @Override
OpenPgpHeaderViewCallback openPgpHeaderViewCallback) { public void onFinishInflate() {
this.fragment = fragment;
this.attachmentCallback = attachmentCallback;
this.openPgpHeaderViewCallback = openPgpHeaderViewCallback;
mHeaderContainer = (MessageHeader) findViewById(R.id.header_container); mHeaderContainer = (MessageHeader) findViewById(R.id.header_container);
// mHeaderContainer.setOnLayoutChangedListener(this); // mHeaderContainer.setOnLayoutChangedListener(this);
mInflater = ((MessageViewFragment) fragment).getFragmentLayoutInflater(); mInflater = LayoutInflater.from(getContext());
mDownloadRemainder = (Button) findViewById(R.id.download_remainder); mDownloadRemainder = (Button) findViewById(R.id.download_remainder);
mDownloadRemainder.setVisibility(View.GONE); mDownloadRemainder.setVisibility(View.GONE);
@ -143,6 +137,14 @@ public class MessageTopView extends LinearLayout implements ShowPicturesControll
mDownloadRemainder.setOnClickListener(listener); mDownloadRemainder.setOnClickListener(listener);
} }
public void setAttachmentCallback(AttachmentViewCallback callback) {
attachmentCallback = callback;
}
public void setOpenPgpHeaderViewCallback(OpenPgpHeaderViewCallback callback) {
openPgpHeaderViewCallback = callback;
}
public void enableDownloadButton() { public void enableDownloadButton() {
mDownloadRemainder.setEnabled(true); mDownloadRemainder.setEnabled(true);
} }

View File

@ -85,7 +85,6 @@ public class MessageViewFragment extends Fragment implements ConfirmationDialogF
private LocalMessage mMessage; private LocalMessage mMessage;
private MessageCryptoAnnotations messageAnnotations; private MessageCryptoAnnotations messageAnnotations;
private MessagingController mController; private MessagingController mController;
private LayoutInflater mLayoutInflater;
private Handler handler = new Handler(); private Handler handler = new Handler();
private DownloadMessageListener downloadMessageListener = new DownloadMessageListener(); private DownloadMessageListener downloadMessageListener = new DownloadMessageListener();
private MessageCryptoHelper messageCryptoHelper; private MessageCryptoHelper messageCryptoHelper;
@ -142,13 +141,13 @@ public class MessageViewFragment extends Fragment implements ConfirmationDialogF
Bundle savedInstanceState) { Bundle savedInstanceState) {
Context context = new ContextThemeWrapper(inflater.getContext(), Context context = new ContextThemeWrapper(inflater.getContext(),
K9.getK9ThemeResourceId(K9.getK9MessageViewTheme())); K9.getK9ThemeResourceId(K9.getK9MessageViewTheme()));
mLayoutInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); LayoutInflater layoutInflater = LayoutInflater.from(context);
View view = mLayoutInflater.inflate(R.layout.message, container, false); View view = layoutInflater.inflate(R.layout.message, container, false);
mMessageView = (MessageTopView) view.findViewById(R.id.message_view); mMessageView = (MessageTopView) view.findViewById(R.id.message_view);
mMessageView.setAttachmentCallback(this);
mMessageView.setOpenPgpHeaderViewCallback(this);
mMessageView.initialize(this, this, this);
mMessageView.setOnToggleFlagClickListener(new OnClickListener() { mMessageView.setOnToggleFlagClickListener(new OnClickListener() {
@Override @Override
public void onClick(View v) { public void onClick(View v) {
@ -722,10 +721,6 @@ public class MessageViewFragment extends Fragment implements ConfirmationDialogF
return mInitialized ; return mInitialized ;
} }
public LayoutInflater getFragmentLayoutInflater() {
return mLayoutInflater;
}
class LocalMessageLoaderCallback implements LoaderCallbacks<LocalMessage> { class LocalMessageLoaderCallback implements LoaderCallbacks<LocalMessage> {
@Override @Override
public Loader<LocalMessage> onCreateLoader(int id, Bundle args) { public Loader<LocalMessage> onCreateLoader(int id, Bundle args) {