This commit is contained in:
Alexey Kulish 2015-10-01 21:57:35 +03:00
parent 9853afb27a
commit 1fbd2aa86d
2 changed files with 1 additions and 297 deletions

View file

@ -23,21 +23,13 @@ import net.osmand.plus.OsmandApplication;
import net.osmand.plus.R;
import net.osmand.plus.WorldRegion;
import net.osmand.plus.download.DownloadActivity;
<<<<<<< HEAD:OsmAnd/src/net/osmand/plus/download/items/WorldItemsFragment.java
import net.osmand.plus.download.newimplementation.MapsInCategoryFragment;
=======
import net.osmand.plus.download.newimplementation.DownloadsUiInitHelper;
>>>>>>> 380dcbe6d79e0f54421d0b67ce3688dfe910e78e:OsmAnd/src/net/osmand/plus/download/items/DownloadItemsFragment.java
import org.apache.commons.logging.Log;
import java.text.MessageFormat;
import java.util.Locale;
public class WorldItemsFragment extends Fragment {
public static final String TAG = "WorldItemsFragment";
private static final Log LOG = PlatformUtil.getLog(WorldItemsFragment.class);
private static final MessageFormat formatGb = new MessageFormat("{0, number,<b>#.##</b>} GB", Locale.US);
public static final int RELOAD_ID = 0;
@ -78,7 +70,7 @@ public class WorldItemsFragment extends Fragment {
FragmentTransaction fragmentTransaction = getChildFragmentManager().beginTransaction();
fragmentTransaction.addToBackStack(null);
LocalDialogFragment.createInstance(region)
.show(fragmentTransaction, MapsInCategoryFragment.TAG);
.show(fragmentTransaction, LocalDialogFragment.TAG);
}
});
@ -243,10 +235,6 @@ public class WorldItemsFragment extends Fragment {
viewHolder.bindIndexItem(item.getIndexItem(), (DownloadActivity) getContext(), false, false);
return convertView;
}
private static class ViewHolder {
TextView textView;
}
}
private static class VoicePromtsAdapter extends ArrayAdapter {

View file

@ -1,284 +0,0 @@
package net.osmand.plus.download.items;
import android.content.Context;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentTransaction;
import android.support.v4.view.MenuItemCompat;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.TextView;
import net.osmand.PlatformUtil;
import net.osmand.plus.OsmandApplication;
import net.osmand.plus.R;
import net.osmand.plus.WorldRegion;
import net.osmand.plus.download.DownloadActivity;
<<<<<<< HEAD:OsmAnd/src/net/osmand/plus/download/items/WorldItemsFragment.java
import net.osmand.plus.download.newimplementation.MapsInCategoryFragment;
=======
import net.osmand.plus.download.newimplementation.DownloadsUiInitHelper;
>>>>>>> 380dcbe6d79e0f54421d0b67ce3688dfe910e78e:OsmAnd/src/net/osmand/plus/download/items/DownloadItemsFragment.java
import org.apache.commons.logging.Log;
import java.text.MessageFormat;
import java.util.Locale;
public class WorldItemsFragment extends Fragment {
public static final String TAG = "WorldItemsFragment";
private static final Log LOG = PlatformUtil.getLog(WorldItemsFragment.class);
private static final MessageFormat formatGb = new MessageFormat("{0, number,<b>#.##</b>} GB", Locale.US);
public static final int RELOAD_ID = 0;
private ItemsListBuilder builder;
private WorldRegionsAdapter worldRegionsAdapter;
private WorldMapsAdapter worldMapsAdapter;
private VoicePromtsAdapter voicePromtsAdapter;
private TextView worldRegionsTextView;
private ListView worldRegionsListView;
private TextView worldMapsTextView;
private ListView worldMapsListView;
private TextView voicePromtsTextView;
private ListView voicePromtsListView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setHasOptionsMenu(true);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.download_index_fragment, container, false);
builder = new ItemsListBuilder(getMyApplication(), getMyApplication().getWorldRegion());
worldRegionsTextView = (TextView) view.findViewById(R.id.list_world_regions_title);
worldRegionsTextView.setText("World regions".toUpperCase());
worldRegionsListView = (ListView) view.findViewById(R.id.list_world_regions);
worldRegionsAdapter = new WorldRegionsAdapter(getActivity(), getMyApplication());
worldRegionsListView.setAdapter(worldRegionsAdapter);
worldRegionsListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
WorldRegion region = worldRegionsAdapter.getItem(position);
FragmentTransaction fragmentTransaction = getChildFragmentManager().beginTransaction();
fragmentTransaction.addToBackStack(null);
LocalDialogFragment.createInstance(region)
.show(fragmentTransaction, MapsInCategoryFragment.TAG);
}
});
worldMapsTextView = (TextView) view.findViewById(R.id.list_world_maps_title);
worldMapsTextView.setText("World maps".toUpperCase());
worldMapsListView = (ListView) view.findViewById(R.id.list_world_maps);
worldMapsAdapter = new WorldMapsAdapter(getActivity());
worldMapsListView.setAdapter(worldMapsAdapter);
voicePromtsTextView = (TextView) view.findViewById(R.id.list_voice_promts_title);
voicePromtsTextView.setText("Voice promts".toUpperCase());
voicePromtsListView = (ListView) view.findViewById(R.id.list_voice_promts);
voicePromtsAdapter = new VoicePromtsAdapter(getActivity(), getMyApplication());
voicePromtsListView.setAdapter(voicePromtsAdapter);
onCategorizationFinished();
DownloadsUiInitHelper.initFreeVersionBanner(view,
getMyApplication().getSettings(), getResources());
return view;
}
public static void setListViewHeightBasedOnChildren(ListView listView) {
ListAdapter listAdapter = listView.getAdapter();
if (listAdapter == null) {
// pre-condition
return;
}
int totalHeight = 0;
for (int i = 0; i < listAdapter.getCount(); i++) {
View listItem = listAdapter.getView(i, null, listView);
listItem.measure(0, 0);
totalHeight += listItem.getMeasuredHeight();
}
ViewGroup.LayoutParams params = listView.getLayoutParams();
params.height = totalHeight + (listView.getDividerHeight() * (listAdapter.getCount() - 1));
listView.setLayoutParams(params);
listView.requestLayout();
}
public OsmandApplication getMyApplication() {
return (OsmandApplication)getActivity().getApplication();
}
private void fillWorldRegionsAdapter() {
if (worldRegionsAdapter != null) {
worldRegionsAdapter.clear();
worldRegionsAdapter.addAll(builder.getRegionsFromAllItems());
updateVisibility(worldRegionsAdapter, worldRegionsTextView, worldRegionsListView);
}
}
private void fillWorldMapsAdapter() {
if (worldMapsAdapter != null) {
worldMapsAdapter.clear();
worldMapsAdapter.addAll(builder.getRegionMapItems());
updateVisibility(worldMapsAdapter, worldMapsTextView, worldMapsListView);
}
}
private void fillVoicePromtsAdapter() {
if (voicePromtsAdapter != null) {
voicePromtsAdapter.clear();
//voicePromtsAdapter.addAll(cats);
updateVisibility(voicePromtsAdapter, voicePromtsTextView, voicePromtsListView);
}
}
private void updateVisibility(ArrayAdapter adapter, TextView textView, ListView listView) {
if (adapter.isEmpty()) {
textView.setVisibility(View.GONE);
listView.setVisibility(View.GONE);
} else {
textView.setVisibility(View.VISIBLE);
listView.setVisibility(View.VISIBLE);
setListViewHeightBasedOnChildren(listView);
}
}
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
MenuItem item = menu.add(0, RELOAD_ID, 0, R.string.shared_string_refresh);
item.setIcon(R.drawable.ic_action_refresh_dark);
MenuItemCompat.setShowAsAction(item, MenuItemCompat.SHOW_AS_ACTION_ALWAYS);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId() == RELOAD_ID) {
// re-create the thread
DownloadActivity.downloadListIndexThread.runReloadIndexFiles();
return true;
}
return super.onOptionsItemSelected(item);
}
private DownloadActivity getDownloadActivity() {
return (DownloadActivity) getActivity();
}
public void onCategorizationFinished() {
if (builder.build()) {
fillWorldRegionsAdapter();
fillWorldMapsAdapter();
fillVoicePromtsAdapter();
}
}
private static class WorldRegionsAdapter extends ArrayAdapter<WorldRegion> {
private final OsmandApplication osmandApplication;
public WorldRegionsAdapter(Context context, OsmandApplication osmandApplication) {
super(context, R.layout.simple_list_menu_item);
this.osmandApplication = osmandApplication;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder viewHolder;
if (convertView == null) {
convertView = LayoutInflater.from(parent.getContext())
.inflate(R.layout.simple_list_menu_item, parent, false);
viewHolder = new ViewHolder();
viewHolder.textView = (TextView) convertView.findViewById(R.id.title);
convertView.setTag(viewHolder);
} else {
viewHolder = (ViewHolder) convertView.getTag();
}
Drawable iconLeft = osmandApplication.getIconsCache()
.getContentIcon(R.drawable.ic_world_globe_dark);
viewHolder.textView.setCompoundDrawablesWithIntrinsicBounds(iconLeft, null, null, null);
viewHolder.textView.setText(getItem(position).getName());
return convertView;
}
private static class ViewHolder {
TextView textView;
}
}
private static class WorldMapsAdapter extends ArrayAdapter<ItemsListBuilder.ResourceItem> {
public WorldMapsAdapter(Context context) {
super(context, R.layout.simple_list_menu_item);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ItemViewHolder viewHolder;
if (convertView == null) {
convertView = LayoutInflater.from(parent.getContext())
.inflate(R.layout.two_line_with_images_list_item, parent, false);
viewHolder = new ItemViewHolder(convertView);
convertView.setTag(viewHolder);
} else {
viewHolder = (ItemViewHolder) convertView.getTag();
}
ItemsListBuilder.ResourceItem item = getItem(position);
viewHolder.bindIndexItem(item.getIndexItem(), (DownloadActivity) getContext(), false, false);
return convertView;
}
private static class ViewHolder {
TextView textView;
}
}
private static class VoicePromtsAdapter extends ArrayAdapter {
private final OsmandApplication osmandApplication;
public VoicePromtsAdapter(Context context, OsmandApplication osmandApplication) {
super(context, R.layout.simple_list_menu_item);
this.osmandApplication = osmandApplication;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder viewHolder;
if (convertView == null) {
convertView = LayoutInflater.from(parent.getContext())
.inflate(R.layout.simple_list_menu_item, parent, false);
viewHolder = new ViewHolder();
viewHolder.textView = (TextView) convertView.findViewById(R.id.title);
convertView.setTag(viewHolder);
} else {
viewHolder = (ViewHolder) convertView.getTag();
}
Drawable iconLeft = osmandApplication.getIconsCache()
.getContentIcon(R.drawable.ic_world_globe_dark);
viewHolder.textView.setCompoundDrawablesWithIntrinsicBounds(iconLeft, null, null, null);
viewHolder.textView.setText(getItem(position).toString());
return convertView;
}
private static class ViewHolder {
TextView textView;
}
}
}