Android Open Source - Mapyst Locations List View






From Project

Back to project page Mapyst.

License

The source code is released under:

Apache License

If you think the Android project Mapyst listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

/*
 * Copyright (C) 2013 Mapyst//  w  ww.  j a  v  a 2  s  .  co m
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package com.mapyst.android.ui;

import java.util.ArrayList;

import android.app.Dialog;
import android.content.Context;
import android.util.AttributeSet;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AutoCompleteTextView;
import android.widget.Button;
import android.widget.ListView;
import android.widget.RelativeLayout;
import android.widget.TextView;

import com.mapyst.android.MainScreen;
import com.mapyst.android.Mapyst;
import com.mapyst.android.R;
import com.mapyst.campus.Location;
import com.mapyst.campus.Location_Type;

public class LocationsListView extends ListView {

  private MainScreen main;
  private Mapyst app;

  public int curLocTypeIndex;
  private Location_Type curLocType;

  public LocationsListView(Context context, AttributeSet attrs) {
    super(context, attrs);
    this.setOnItemClickListener(new LocationsListClickListener());
  }

  public void setup(MainScreen main, Mapyst app) {
    this.main = main;
    this.app = app;

    curLocTypeIndex = -1;
  }

  public void update() {
    if (main != null) {
      TextView locationsTitle = (TextView) main.findViewById(R.id.locationTypeText);
      ListView listView = (ListView) main.findViewById(R.id.locationsList);
      ArrayList<String> locs = new ArrayList<String>(100);
      if (curLocTypeIndex == -1) {
        for (int i = 0; i < app.campus.location_types.length; i++) {
          locs.add(app.campus.location_types[i].name);
        }
        locationsTitle.setText("Location Categories");

        Button locsBack = (Button) main.findViewById(R.id.locationsBack);
        locsBack.setVisibility(View.GONE);
      } else {
        for (int i = 0; i < app.campus.location_types[curLocTypeIndex].locations.length; i++) {
          locs.add(app.campus.location_types[curLocTypeIndex].locations[i].names[0]);
        }
        locationsTitle.setText(curLocType.name);

        Button locsBack = (Button) main.findViewById(R.id.locationsBack);
        locsBack.setVisibility(View.VISIBLE);
      }

      ArrayList<String> locHours = null;
      if (!(curLocTypeIndex == -1)) {
        locHours = getLocHours(locs);
      }
      listView.setAdapter(new LocationsAdapter(main, locs, locHours));
    }
  }

  public ArrayList<String> getLocHours(ArrayList<String> locs) {
    ArrayList<String> hours = new ArrayList<String>(locs.size());
        for (String loc : locs) {
            Location location = app.campus.getCampusLocation(loc);
            hours.add(location.hours);
        }
    return hours;
  }

  public String getLocInfo(Location location) {
        return formatHours(location.hours) + "\n\n" + location.description + "\n";
  }

  public String formatHours(String hours) {
    hours = hours.replace("H:", "");
    hours = hours.replace("MTWThFSaS:", "\nMon-Sun: ");
    hours = hours.replace("MTWThFSa:", "\nMon-Sat: ");
    hours = hours.replace("MTWThF:", "\nMon-Fri: ");
    hours = hours.replace("MTWTh:", "\nMon-Thurs: ");
    hours = hours.replace("MTW:", "\nMon-Wed: ");
    hours = hours.replace("WThF:", "\nWed-Fri: ");
    hours = hours.replace("MWF:", "\nMon,Web,Fri: ");
    hours = hours.replace("TTh:", "\nTues,Thurs: ");
    hours = hours.replace("SaS:", "\nSat,Sun: ");
    hours = hours.replace("MT:", "\nMon,Tues: ");
    hours = hours.replace("WF:", "\nWed,Fri: ");
    hours = hours.replace("F:", "\nFri: ");
    hours = hours.replace("Sa:", "\nSat: ");
    hours = hours.replace("S:", "\nSun: ");
    hours = hours.replace("Th:", "\nThurs: ");

    if (hours.length() > 1) {
      hours = hours.substring(1);
    }
    return hours;
  }

  private class LocationsListClickListener implements
      AdapterView.OnItemClickListener {
    @Override
    public void onItemClick(AdapterView<?> adapterView, View view, int index, long arg3) {
      final String curSelectionText = (String) ((TextView) ((RelativeLayout) view).getChildAt(0)).getText();

      if (curLocTypeIndex == -1) {
        for (int i = 0; i < app.campus.location_types.length; i++) {
          if (curSelectionText.equals(app.campus.location_types[i].name))
            curLocType = app.campus.location_types[i];
        }
        curLocTypeIndex = index;
        update();
      } else {

        final Dialog dialog = new Dialog(adapterView.getContext(), R.style.locationsDialogStyle);
        dialog.setContentView(R.layout.locations_dialog);
        dialog.setTitle(curSelectionText);
        dialog.setCancelable(true);

        Location campusLocation = app.campus.getCampusLocation(curSelectionText);

        Button seeMap = (Button) dialog.findViewById(R.id.dialog_seeOnMap);
        seeMap.setOnClickListener(new OnClickListener() {
          @Override
          public void onClick(View view) {
            dialog.dismiss();

            main.getDirections(curSelectionText, "");
          }
        });

        Button setStart = (Button) dialog.findViewById(R.id.dialog_setStart);
        setStart.setOnClickListener(new OnClickListener() {
          @Override
          public void onClick(View view) {
            dialog.dismiss();

            AutoCompleteTextView startTextView = (AutoCompleteTextView) main.findViewById(R.id.startText);
            startTextView.setText(curSelectionText);
          }
        });

        Button setEnd = (Button) dialog.findViewById(R.id.dialog_setEnd);
        setEnd.setOnClickListener(new OnClickListener() {
          @Override
          public void onClick(View view) {
            dialog.dismiss();

            AutoCompleteTextView endTextView = (AutoCompleteTextView) main.findViewById(R.id.endText);
            endTextView.setText(curSelectionText);
          }
        });

        TextView content = (TextView) dialog.findViewById(R.id.dialog_content);
        String contentString = "";
        if (campusLocation != null) {
          contentString = getLocInfo(campusLocation);
        }
        content.setText(contentString);
        content.setPadding(20, 0, 20, 20);
        content.setTextSize(16.0f);

        dialog.show();
      }
    }
  }
}




Java Source Code List

com.mapyst.FileHandlerInterface.java
com.mapyst.android.AndroidFileHandler.java
com.mapyst.android.CampusLoader.java
com.mapyst.android.Compass.java
com.mapyst.android.DirectionsList.java
com.mapyst.android.Images.java
com.mapyst.android.LocationFinder.java
com.mapyst.android.MainScreen.java
com.mapyst.android.Mapyst.java
com.mapyst.android.Settings.java
com.mapyst.android.Splash.java
com.mapyst.android.asynctask.CampusLoaderTaskPrefs.java
com.mapyst.android.asynctask.CampusLoaderTask.java
com.mapyst.android.asynctask.RouteMakerTaskPrefs.java
com.mapyst.android.asynctask.RouteMakerTask.java
com.mapyst.android.ui.CenteredToastFactory.java
com.mapyst.android.ui.CompassOverlay.java
com.mapyst.android.ui.DirectionIcon.java
com.mapyst.android.ui.DirectionsListAdapter.java
com.mapyst.android.ui.DirectionsListItem.java
com.mapyst.android.ui.DrawingHelpers.java
com.mapyst.android.ui.Icon.java
com.mapyst.android.ui.LocationsAdapter.java
com.mapyst.android.ui.LocationsListView.java
com.mapyst.android.ui.RouteMapOverlay.java
com.mapyst.android.ui.SlidingScrollView.java
com.mapyst.android.ui.map.AnimatedMapZoomer.java
com.mapyst.android.ui.map.LocationBalloon.java
com.mapyst.android.ui.map.LocationChooserOverlay.java
com.mapyst.android.ui.map.MapUtils.java
com.mapyst.android.ui.map.MapViewLimiter.java
com.mapyst.android.ui.map.MapViewMover.java
com.mapyst.android.ui.map.OnMapTouchLimiterListener.java
com.mapyst.android.ui.map.PriorityMapView.java
com.mapyst.android.ui.map.ViewItemOverlay.java
com.mapyst.campus.Building.java
com.mapyst.campus.Campus.java
com.mapyst.campus.Floor.java
com.mapyst.campus.ListOfCampuses.java
com.mapyst.campus.Location_Type.java
com.mapyst.campus.Location.java
com.mapyst.route.Arc.java
com.mapyst.route.DataParser.java
com.mapyst.route.Direction.java
com.mapyst.route.DistanceCalculator.java
com.mapyst.route.GraphNode.java
com.mapyst.route.InterpretResult.java
com.mapyst.route.InterpretedInfo.java
com.mapyst.route.Interpreter.java
com.mapyst.route.LatLngPoint.java
com.mapyst.route.Prioritizable.java
com.mapyst.route.PriorityQ.java
com.mapyst.route.RouteFinder.java
com.mapyst.route.RoutePreferences.java
com.mapyst.route.Route.java
com.mapyst.route.ShortestPath.java
com.mapyst.route.Waypoint2D.java
com.mapyst.route.WaypointID.java
com.markupartist.android.widget.ActionBar.java
com.markupartist.android.widget.ScrollingTextView.java