csci310.parkhere.ui.activities.GuestActivity.java Source code

Java tutorial

Introduction

Here is the source code for csci310.parkhere.ui.activities.GuestActivity.java

Source

package csci310.parkhere.ui.activities;

import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

import com.google.android.gms.maps.model.LatLng;

import java.io.Serializable;
import java.util.ArrayList;

import csci310.parkhere.R;
import csci310.parkhere.controller.ClientController;
import csci310.parkhere.ui.fragments.DisplaySearchFragment;
import csci310.parkhere.ui.fragments.MapViewFragment;
import csci310.parkhere.ui.fragments.RenterReservationDetailFragment;
import csci310.parkhere.ui.fragments.SearchFragment;
import csci310.parkhere.ui.fragments.SearchSpaceDetailFragment;
import resource.MyEntry;
import resource.NetworkPackage;
import resource.ParkingSpot;
import resource.SearchResults;

/**
 * Created by ivylinlaw on 10/17/16.
 */
public class GuestActivity extends FragmentActivity implements SearchFragment.OnFragmentInteractionListener,
        DisplaySearchFragment.OnFragmentInteractionListener {

    Intent myIntent;
    FragmentManager fm;
    Button registerButton;
    FragmentTransaction fragmentTransaction;
    Fragment searchFragment, privateProfileFragment, editProfileFragment, displaySearchFragment,
            reservationsFragment, searchSpaceDetailFragment, reservationDetailFragment;

    ClientController clientController;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        clientController = ClientController.getInstance();
        clientController.setCurrentActivity(this);
        setContentView(R.layout.activity_guest);
        registerButton = (Button) findViewById(R.id.guestRegisterButton);

        registerButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                myIntent = new Intent(v.getContext(), RegisterMainActivity.class);
                startActivity(myIntent);
            }
        });
        fm = getSupportFragmentManager();
        fragmentTransaction = fm.beginTransaction();
        searchFragment = new SearchFragment();
        fragmentTransaction.add(R.id.fragContainer, searchFragment);
        fragmentTransaction.commit();

    }

    public void displaySearchResult(SearchResults results, LatLng loc, String startDate, String startTime,
            String endDate, String endTime) {
        if (results == null)
            return;

        ArrayList<ParkingSpot> spotList = results.searchResultList;

        String[] searchResults = new String[spotList.size()];
        for (int i = 0; i < spotList.size(); i++) {
            searchResults[i] = spotList.get(i).getDescription();
        }

        Log.d("SEARCH_RESULT", "To displaySearchFragment");

        displaySearchFragment = new DisplaySearchFragment();

        ((DisplaySearchFragment) displaySearchFragment).setSearchResultListview(searchResults, loc, startDate,
                startTime, endDate, endTime);

        fragmentTransaction = fm.beginTransaction();
        fragmentTransaction.replace(R.id.fragContainer, displaySearchFragment);
        fragmentTransaction.addToBackStack(null);
        fragmentTransaction.commit();
    }

    public void onFragmentInteraction(Uri uri) {
        //you can leave it empty
    }

    private class LoadSpotImageTask extends AsyncTask<Void, Void, ArrayList<String>> {
        private final long mSpotID;
        private final Bundle bundle;

        LoadSpotImageTask(long spotID, Bundle bundle) {
            mSpotID = spotID;
            this.bundle = bundle;
            System.out.println(mSpotID);
        }

        @Override
        protected void onPreExecute() {
        }

        @Override
        protected ArrayList<String> doInBackground(Void... params) {
            //            try {
            //
            ClientController clientController = ClientController.getInstance();
            clientController.getParkingSpotImages("PARKINGSPOT", mSpotID);

            NetworkPackage NP = clientController.checkReceived();

            MyEntry<String, Serializable> entry = NP.getCommand();
            if (entry.getKey().equals("PARKINGSPOTIMAGESURLS")) {
                ArrayList<String> urls = (ArrayList<String>) entry.getValue();

                for (String url : urls) {
                    Log.d("FETCHIMAGE", url);
                }
                return urls;
            }

            return null;

        }

        @Override
        protected void onPostExecute(ArrayList<String> imagesURLs) {

        }

    }

    public void switchToListViewFrag(DisplaySearchFragment displaySearchFragment) {
        fragmentTransaction = fm.beginTransaction();
        fragmentTransaction.replace(R.id.fragContainer, displaySearchFragment);
        fragmentTransaction.addToBackStack(null);
        fragmentTransaction.commit();
    }

    public void switchToMapViewFrag(MapViewFragment mapViewFragment) {
        fragmentTransaction = fm.beginTransaction();
        fragmentTransaction.replace(R.id.fragContainer, mapViewFragment);
        fragmentTransaction.addToBackStack(null);
        fragmentTransaction.commit();
    }

    //    public void updateUserInfo(String inUsername, String inPw, String inLicenseID, String inLicensePlate) {
    //        // STILL NEED TO ADD PROFILE PIC
    //        privateProfileFragment.updateUserInfo(inUsername, inPw, inLicenseID, inLicensePlate);
    //        editProfileFragment.updateUserInfo(inUsername, inPw, inLicenseID, inLicensePlate);
    //    }

    //************************************************************************
    // FOR TESTING - load images to search space detail fragment
    public void loadImages(Bundle bundle, ArrayList<String> inputURL) {

        bundle.putStringArrayList("spot_images", inputURL);
    }
    //************************************************************************

    @Override
    public void onSearchSpaceSelected(int position, String startDate, String startTime, String endDate,
            String endTime) {

    }

}