multidecrypt: prepare viewholder for file list

This commit is contained in:
Vincent Breitmoser
2015-09-16 02:19:23 +02:00
parent 5ac939387f
commit 81ce075df9
2 changed files with 119 additions and 92 deletions

View File

@@ -46,6 +46,7 @@ import android.view.View;
import android.view.View.OnClickListener; import android.view.View.OnClickListener;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.widget.ImageView; import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.PopupMenu; import android.widget.PopupMenu;
import android.widget.PopupMenu.OnDismissListener; import android.widget.PopupMenu.OnDismissListener;
import android.widget.PopupMenu.OnMenuItemClickListener; import android.widget.PopupMenu.OnMenuItemClickListener;
@@ -61,6 +62,7 @@ import org.sufficientlysecure.keychain.operations.results.InputDataResult;
import org.sufficientlysecure.keychain.pgp.PgpDecryptVerifyInputParcel; import org.sufficientlysecure.keychain.pgp.PgpDecryptVerifyInputParcel;
import org.sufficientlysecure.keychain.provider.KeychainContract.KeyRings; import org.sufficientlysecure.keychain.provider.KeychainContract.KeyRings;
import org.sufficientlysecure.keychain.service.InputDataParcel; import org.sufficientlysecure.keychain.service.InputDataParcel;
import org.sufficientlysecure.keychain.ui.DecryptListFragment.ViewHolder.SubViewHolder;
import org.sufficientlysecure.keychain.ui.base.QueueingCryptoOperationFragment; import org.sufficientlysecure.keychain.ui.base.QueueingCryptoOperationFragment;
// this import NEEDS to be above the ViewModel one, or it won't compile! (as of 06/06/15) // this import NEEDS to be above the ViewModel one, or it won't compile! (as of 06/06/15)
import org.sufficientlysecure.keychain.ui.util.KeyFormattingUtils.StatusHolder; import org.sufficientlysecure.keychain.ui.util.KeyFormattingUtils.StatusHolder;
@@ -659,6 +661,9 @@ public class DecryptListFragment
final OpenPgpMetadata metadata = model.mResult.mMetadata.get(0); final OpenPgpMetadata metadata = model.mResult.mMetadata.get(0);
{
SubViewHolder fileHolder = holder.mFileHolderList.get(0);
String filename; String filename;
if (metadata == null) { if (metadata == null) {
filename = getString(R.string.filename_unknown); filename = getString(R.string.filename_unknown);
@@ -668,22 +673,22 @@ public class DecryptListFragment
} else { } else {
filename = metadata.getFilename(); filename = metadata.getFilename();
} }
holder.vFilename.setText(filename); fileHolder.vFilename.setText(filename);
long size = metadata == null ? 0 : metadata.getOriginalSize(); long size = metadata == null ? 0 : metadata.getOriginalSize();
if (size == -1 || size == 0) { if (size == -1 || size == 0) {
holder.vFilesize.setText(""); fileHolder.vFilesize.setText("");
} else { } else {
holder.vFilesize.setText(FileHelper.readableFileSize(size)); fileHolder.vFilesize.setText(FileHelper.readableFileSize(size));
} }
// if (model.mIcon != null) { // if (model.mIcon != null) {
// holder.vThumbnail.setImageDrawable(model.mIcon); // holder.vThumbnail.setImageDrawable(model.mIcon);
//} else { //} else {
holder.vThumbnail.setImageResource(R.drawable.ic_doc_generic_am); fileHolder.vThumbnail.setImageResource(R.drawable.ic_doc_generic_am);
//} //}
holder.vFile.setOnClickListener(new OnClickListener() { fileHolder.vFile.setOnClickListener(new OnClickListener() {
@Override @Override
public void onClick(View view) { public void onClick(View view) {
if (model.mResult.success()) { if (model.mResult.success()) {
@@ -692,6 +697,8 @@ public class DecryptListFragment
} }
}); });
}
OpenPgpSignatureResult sigResult = model.mResult.mDecryptVerifyResult.getSignatureResult(); OpenPgpSignatureResult sigResult = model.mResult.mDecryptVerifyResult.getSignatureResult();
if (sigResult != null) { if (sigResult != null) {
final long keyId = sigResult.getKeyId(); final long keyId = sigResult.getKeyId();
@@ -816,11 +823,6 @@ public class DecryptListFragment
public ProgressBar vProgress; public ProgressBar vProgress;
public TextView vProgressMsg; public TextView vProgressMsg;
public View vFile;
public TextView vFilename;
public TextView vFilesize;
public ImageView vThumbnail;
public ImageView vEncStatusIcon; public ImageView vEncStatusIcon;
public TextView vEncStatusText; public TextView vEncStatusText;
@@ -837,6 +839,24 @@ public class DecryptListFragment
public ImageView vCancelledRetry; public ImageView vCancelledRetry;
public LinearLayout vFileList;
public static class SubViewHolder {
public View vFile;
public TextView vFilename;
public TextView vFilesize;
public ImageView vThumbnail;
public SubViewHolder(View itemView) {
vFile = itemView.findViewById(R.id.file);
vFilename = (TextView) itemView.findViewById(R.id.filename);
vFilesize = (TextView) itemView.findViewById(R.id.filesize);
vThumbnail = (ImageView) itemView.findViewById(R.id.thumbnail);
}
}
public ArrayList<SubViewHolder> mFileHolderList = new ArrayList<>();
public ViewHolder(View itemView) { public ViewHolder(View itemView) {
super(itemView); super(itemView);
@@ -845,11 +865,6 @@ public class DecryptListFragment
vProgress = (ProgressBar) itemView.findViewById(R.id.progress); vProgress = (ProgressBar) itemView.findViewById(R.id.progress);
vProgressMsg = (TextView) itemView.findViewById(R.id.progress_msg); vProgressMsg = (TextView) itemView.findViewById(R.id.progress_msg);
vFile = itemView.findViewById(R.id.file);
vFilename = (TextView) itemView.findViewById(R.id.filename);
vFilesize = (TextView) itemView.findViewById(R.id.filesize);
vThumbnail = (ImageView) itemView.findViewById(R.id.thumbnail);
vEncStatusIcon = (ImageView) itemView.findViewById(R.id.result_encryption_icon); vEncStatusIcon = (ImageView) itemView.findViewById(R.id.result_encryption_icon);
vEncStatusText = (TextView) itemView.findViewById(R.id.result_encryption_text); vEncStatusText = (TextView) itemView.findViewById(R.id.result_encryption_text);
@@ -860,6 +875,11 @@ public class DecryptListFragment
vSignatureMail= (TextView) itemView.findViewById(R.id.result_signature_email); vSignatureMail= (TextView) itemView.findViewById(R.id.result_signature_email);
vSignatureAction = (TextView) itemView.findViewById(R.id.result_signature_action); vSignatureAction = (TextView) itemView.findViewById(R.id.result_signature_action);
vFileList = (LinearLayout) itemView.findViewById(R.id.file_list);
for (int i = 0; i < vFileList.getChildCount(); i++) {
mFileHolderList.add(new SubViewHolder(vFileList.getChildAt(i)));
}
vContextMenu = itemView.findViewById(R.id.context_menu); vContextMenu = itemView.findViewById(R.id.context_menu);
vErrorMsg = (TextView) itemView.findViewById(R.id.result_error_msg); vErrorMsg = (TextView) itemView.findViewById(R.id.result_error_msg);

View File

@@ -24,7 +24,7 @@
android:outAnimation="@anim/fade_out" android:outAnimation="@anim/fade_out"
android:id="@+id/view_animator" android:id="@+id/view_animator"
android:measureAllChildren="false" android:measureAllChildren="false"
custom:initialView="0" custom:initialView="1"
android:minHeight="?listPreferredItemHeightSmall" android:minHeight="?listPreferredItemHeightSmall"
android:animateLayoutChanges="true" android:animateLayoutChanges="true"
> >
@@ -181,6 +181,11 @@
tools:layout_height="2dip" tools:layout_height="2dip"
android:background="?android:attr/listDivider" /> android:background="?android:attr/listDivider" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/file_list">
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
@@ -245,6 +250,8 @@
</LinearLayout> </LinearLayout>
</LinearLayout>
<LinearLayout <LinearLayout
android:orientation="horizontal" android:orientation="horizontal"
android:layout_width="match_parent" android:layout_width="match_parent"