mirror of
				https://github.com/commons-app/apps-android-commons.git
				synced 2025-10-30 22:34:02 +01:00 
			
		
		
		
	Refactored to move out nearby adapter from the activity
This commit is contained in:
		
							parent
							
								
									a5fe5ff5a6
								
							
						
					
					
						commit
						c2ccd95089
					
				
					 4 changed files with 87 additions and 47 deletions
				
			
		
							
								
								
									
										7
									
								
								app/src/main/java/fr/free/nrw/commons/ViewHolder.java
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								app/src/main/java/fr/free/nrw/commons/ViewHolder.java
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,7 @@ | |||
| package fr.free.nrw.commons; | ||||
| 
 | ||||
| import android.content.Context; | ||||
| 
 | ||||
| public interface ViewHolder<T> { | ||||
|     void bindModel(Context context, T model); | ||||
| } | ||||
|  | @ -0,0 +1,45 @@ | |||
| package fr.free.nrw.commons.nearby; | ||||
| 
 | ||||
| import android.content.Context; | ||||
| import android.util.Log; | ||||
| import android.view.LayoutInflater; | ||||
| import android.view.View; | ||||
| import android.view.ViewGroup; | ||||
| import android.widget.ArrayAdapter; | ||||
| 
 | ||||
| import java.util.List; | ||||
| 
 | ||||
| import fr.free.nrw.commons.R; | ||||
| 
 | ||||
| public class NearbyAdapter extends ArrayAdapter<Place> { | ||||
|     public List<Place> placesList; | ||||
|     private Context mContext; | ||||
| 
 | ||||
|     public NearbyAdapter(Context context, List<Place> places) { | ||||
|         super(context, R.layout.item_place, places); | ||||
|         this.mContext = context; | ||||
|         placesList = places; | ||||
|     } | ||||
| 
 | ||||
|     @Override | ||||
|     public View getView(int position, View convertView, ViewGroup parent) { | ||||
|         // Get the data item for this position | ||||
|         Place place = getItem(position); | ||||
|         Log.d("NearbyAdapter", "Place " + place.name); | ||||
| 
 | ||||
|         // Check if an existing view is being reused, otherwise inflate the view | ||||
|         if (convertView == null) { | ||||
|             convertView = LayoutInflater.from(getContext()).inflate(R.layout.item_place, parent, false); | ||||
|         } | ||||
| 
 | ||||
|         NearbyViewHolder viewHolder = new NearbyViewHolder(convertView); | ||||
|         viewHolder.bindModel(mContext, place); | ||||
|         // Return the completed view to render on screen | ||||
|         return convertView; | ||||
|     } | ||||
| 
 | ||||
|     @Override | ||||
|     public long getItemId(int position) { | ||||
|         return position; | ||||
|     } | ||||
| } | ||||
|  | @ -190,53 +190,6 @@ public class NearbyListFragment extends ListFragment implements TaskListener { | |||
|         } | ||||
|     } | ||||
| 
 | ||||
|     private class NearbyAdapter extends ArrayAdapter<Place> { | ||||
| 
 | ||||
|         public List<Place> placesList; | ||||
|         private Context mContext; | ||||
| 
 | ||||
|         public NearbyAdapter(Context context, List<Place> places) { | ||||
|             super(context, R.layout.item_place, places); | ||||
|             mContext = context; | ||||
|             placesList = places; | ||||
|         } | ||||
| 
 | ||||
|         @Override | ||||
|         public View getView(int position, View convertView, ViewGroup parent) { | ||||
|             // Get the data item for this position | ||||
|             Place place = getItem(position); | ||||
|             Log.d(TAG, "Place " + place.name); | ||||
| 
 | ||||
|             // Check if an existing view is being reused, otherwise inflate the view | ||||
|             if (convertView == null) { | ||||
|                 convertView = LayoutInflater.from(getContext()).inflate(R.layout.item_place, parent, false); | ||||
|             } | ||||
| 
 | ||||
|             // Lookup view for data population | ||||
|             TextView tvName = (TextView) convertView.findViewById(R.id.tvName); | ||||
|             TextView tvDesc = (TextView) convertView.findViewById(R.id.tvDesc); | ||||
|             TextView distance = (TextView) convertView.findViewById(R.id.distance); | ||||
|             ImageView icon = (ImageView) convertView.findViewById(R.id.icon); | ||||
| 
 | ||||
|             String quotelessName = place.name.replaceAll("^\"|\"$", ""); | ||||
| 
 | ||||
|             // Populate the data into the template view using the data object | ||||
|             tvName.setText(quotelessName); | ||||
|             tvDesc.setText(place.description); | ||||
|             distance.setText(place.distance); | ||||
| 
 | ||||
|             icon.setImageResource(ResourceUtils.getDescriptionIcon(place.description)); | ||||
| 
 | ||||
|             // Return the completed view to render on screen | ||||
|             return convertView; | ||||
|         } | ||||
| 
 | ||||
|         @Override | ||||
|         public long getItemId(int position) { | ||||
|             return position; | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     private List<Place> loadAttractionsFromLocation(final LatLng curLatLng) { | ||||
| 
 | ||||
|         List<Place> places = NearbyPlaces.get(); | ||||
|  |  | |||
|  | @ -0,0 +1,35 @@ | |||
| package fr.free.nrw.commons.nearby; | ||||
| 
 | ||||
| import android.content.Context; | ||||
| import android.view.View; | ||||
| import android.widget.ImageView; | ||||
| import android.widget.TextView; | ||||
| 
 | ||||
| import butterknife.BindView; | ||||
| import butterknife.ButterKnife; | ||||
| import fr.free.nrw.commons.R; | ||||
| import fr.free.nrw.commons.ViewHolder; | ||||
| import fr.free.nrw.commons.utils.ResourceUtils; | ||||
| 
 | ||||
| public class NearbyViewHolder implements ViewHolder<Place> { | ||||
|     @BindView(R.id.tvName) TextView tvName; | ||||
|     @BindView(R.id.tvDesc) TextView tvDesc; | ||||
|     @BindView(R.id.distance) TextView distance; | ||||
|     @BindView(R.id.icon) ImageView icon; | ||||
| 
 | ||||
|     public NearbyViewHolder(View view) { | ||||
|         ButterKnife.bind(this, view); | ||||
|     } | ||||
| 
 | ||||
|     @Override | ||||
|     public void bindModel(Context context, Place place) { | ||||
|         String quotelessName = place.name.replaceAll("^\"|\"$", ""); | ||||
| 
 | ||||
|         // Populate the data into the template view using the data object | ||||
|         tvName.setText(quotelessName); | ||||
|         tvDesc.setText(place.description); | ||||
|         distance.setText(place.distance); | ||||
| 
 | ||||
|         icon.setImageResource(ResourceUtils.getDescriptionIcon(place.description)); | ||||
|     } | ||||
| } | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 maskara
						maskara