|
27 | 27 | import android.net.Uri; |
28 | 28 | import android.os.Build; |
29 | 29 | import android.os.Bundle; |
| 30 | +import android.support.v4.content.ContextCompat; |
30 | 31 | import android.support.v7.app.AppCompatActivity; |
31 | 32 | import android.support.v7.view.ActionMode; |
32 | 33 | import android.text.Html; |
|
42 | 43 | import android.widget.AdapterView.OnItemLongClickListener; |
43 | 44 | import android.widget.BaseAdapter; |
44 | 45 | import android.widget.ImageView; |
| 46 | +import android.widget.LinearLayout; |
45 | 47 | import android.widget.ListView; |
46 | 48 | import android.widget.RelativeLayout; |
47 | 49 | import android.widget.TextView; |
@@ -135,6 +137,7 @@ private void createUpdateStatusText() { |
135 | 137 | layout.addView(mUpdateStatus); |
136 | 138 | } |
137 | 139 |
|
| 140 | + |
138 | 141 | private void createUpdateLayout() { |
139 | 142 |
|
140 | 143 | lv.setVisibility(View.GONE); |
@@ -860,30 +863,40 @@ public View getView(int position, View convertView, ViewGroup parent) { |
860 | 863 | row.setBackgroundResource(R.drawable.card_background_dark); |
861 | 864 |
|
862 | 865 | holder = new TargetHolder(); |
863 | | - holder.itemImage = (ImageView) row.findViewById(R.id.itemIcon); |
864 | | - holder.itemTitle = (TextView) row.findViewById(R.id.itemTitle); |
865 | | - holder.itemDescription = (TextView) row.findViewById(R.id.itemDescription); |
866 | | - |
867 | | - row.setTag(holder); |
| 866 | + holder.itemImage = (ImageView) (row != null ? row |
| 867 | + .findViewById(R.id.itemIcon) : null); |
| 868 | + holder.itemTitle = (TextView) (row != null ? row |
| 869 | + .findViewById(R.id.itemTitle) : null); |
| 870 | + holder.itemDescription = (TextView) (row != null ? row |
| 871 | + .findViewById(R.id.itemDescription) : null); |
| 872 | + holder.portCount = (TextView) (row != null ? row |
| 873 | + .findViewById(R.id.portCount) : null); |
| 874 | + holder.portCountLayout = (LinearLayout) (row != null ? row |
| 875 | + .findViewById(R.id.portCountLayout) : null); |
| 876 | + if (row != null) |
| 877 | + row.setTag(holder); |
868 | 878 | } else |
869 | 879 | holder = (TargetHolder) row.getTag(); |
870 | 880 |
|
871 | | - Target target = list.get(position); |
| 881 | + final Target target = list.get(position); |
872 | 882 |
|
873 | | - if (target.hasAlias()) |
| 883 | + if (target.hasAlias()){ |
874 | 884 | holder.itemTitle.setText(Html.fromHtml("<b>" |
875 | 885 | + target.getAlias() + "</b> <small>( " |
876 | 886 | + target.getDisplayAddress() + " )</small>")); |
877 | | - |
878 | | - else |
| 887 | + } else { |
879 | 888 | holder.itemTitle.setText(target.toString()); |
880 | | - |
881 | | - holder.itemTitle.setTextColor(getResources().getColor((target.isConnected() ? R.color.app_color : R.color.gray_text))); |
| 889 | + } |
| 890 | + holder.itemTitle.setTextColor(ContextCompat.getColor(getApplicationContext(), (target.isConnected() ? R.color.app_color : R.color.gray_text))); |
882 | 891 |
|
883 | 892 | holder.itemTitle.setTypeface(null, Typeface.NORMAL); |
884 | 893 | holder.itemImage.setImageResource(target.getDrawableResourceId()); |
885 | 894 | holder.itemDescription.setText(target.getDescription()); |
886 | 895 |
|
| 896 | + int openedPorts = target.getOpenPorts().size(); |
| 897 | + |
| 898 | + holder.portCount.setText(String.format("%d", openedPorts)); |
| 899 | + holder.portCountLayout.setVisibility(openedPorts < 1 ? View.GONE : View.VISIBLE); |
887 | 900 | return row; |
888 | 901 | } |
889 | 902 |
|
@@ -948,6 +961,8 @@ class TargetHolder { |
948 | 961 | ImageView itemImage; |
949 | 962 | TextView itemTitle; |
950 | 963 | TextView itemDescription; |
| 964 | + TextView portCount; |
| 965 | + LinearLayout portCountLayout; |
951 | 966 | } |
952 | 967 | } |
953 | 968 |
|
|
0 commit comments