Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 16 additions & 14 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -22,31 +22,33 @@
</intent-filter>
</activity>


<activity
android:name=".ui.login.LoginActivity"

<activity android:name=".ui.login.LoginActivity"
android:screenOrientation="portrait"
android:configChanges="orientation"
android:theme="@style/AppTheme.NoActionBar"></activity>

<activity
android:name=".ui.home.HomeActivity"
android:theme="@style/AppTheme.NoActionBar">
</activity>

<activity android:name=".ui.home.HomeActivity"
android:windowSoftInputMode="adjustPan|adjustResize"
android:screenOrientation="portrait"
android:configChanges="orientation"></activity>

android:configChanges="orientation">
</activity>

<activity android:name=".ui.City.CityActivity"
android:screenOrientation="portrait"
android:configChanges="orientation"/>


android:configChanges="orientation" />

<activity android:name=".ui.StatesWithCities.StatesWithCitiesActivity"
android:screenOrientation="portrait"
android:configChanges="orientation"/>

<activity android:name=".ui.StatesWithPlaces.StatesWithPlacesActivity"
android:screenOrientation="portrait"
android:configChanges="orientation"></activity>
android:configChanges="orientation"/>

<activity android:name=".ui.selectedstate.SelectedStateActivity"/>

</application>

</manifest>
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
package com.udacity.exploreindia.base;

import com.udacity.exploreindia.injection.InjectionUtils;
import com.udacity.exploreindia.ui.StatesWithCities.StatesWithCitiesActivity;
import com.udacity.exploreindia.ui.StatesWithCities.StatesWithCitiesPresenter;
import com.udacity.exploreindia.ui.City.CityActivity;
import com.udacity.exploreindia.ui.City.CityPresenter;
import com.udacity.exploreindia.ui.home.HomeActivity;
Expand All @@ -16,6 +18,11 @@
import com.udacity.exploreindia.ui.home.fragments.search.SearchFragment;
import com.udacity.exploreindia.ui.login.LoginActivity;
import com.udacity.exploreindia.ui.login.LoginPresenter;
import com.udacity.exploreindia.ui.selectedstate.SelectedStateActivity;
import com.udacity.exploreindia.ui.selectedstate.SelectedStatePresenter;
import com.udacity.exploreindia.ui.StatesWithCities.StatesWithCitiesFragment;
import com.udacity.exploreindia.ui.selectedstate.fragment.SelectedPlacesFragment;
import com.udacity.exploreindia.ui.selectedstate.fragment.SelectedPlacesPresenter;
import com.udacity.exploreindia.ui.splash.SplashActivity;
import com.udacity.exploreindia.ui.splash.SplashPresenter;

Expand All @@ -40,6 +47,10 @@ public static <T extends BaseFragment, S extends BaseMvpPresenter> S getPresente
return presenter;
} else if (claxx instanceof LikedPlacesFragment) {
presenter = (S) new LikedPlacesPresenter(InjectionUtils.getSharedPreference(), InjectionUtils.providesDataRepo(), claxx.getContext());
} else if (claxx instanceof StatesWithCitiesFragment) {
presenter = (S) new StatesWithCitiesPresenter(InjectionUtils.getSharedPreference(), InjectionUtils.providesDataRepo(), claxx.getContext());
} else if (claxx instanceof SelectedPlacesFragment) {
presenter = (S) new SelectedPlacesPresenter(InjectionUtils.getSharedPreference(), InjectionUtils.providesDataRepo(), claxx.getContext());
} else {
throw new IllegalStateException("Activity presenter not supported yet");
}
Expand All @@ -57,6 +68,10 @@ public static <T extends BaseActivity, S extends BaseMvpPresenter> S getPresente
presenter = (S) new LoginPresenter(InjectionUtils.getSharedPreference(), InjectionUtils.providesDataRepo(), claxx);
} else if (claxx instanceof HomeActivity) {
presenter = (S) new HomePresenter(InjectionUtils.getSharedPreference(), InjectionUtils.providesDataRepo(), claxx);
} else if (claxx instanceof StatesWithCitiesActivity) {
presenter = (S) new StatesWithCitiesPresenter(InjectionUtils.getSharedPreference(), InjectionUtils.providesDataRepo(), claxx);
} else if (claxx instanceof SelectedStateActivity) {
presenter = (S) new SelectedStatePresenter(InjectionUtils.getSharedPreference(), InjectionUtils.providesDataRepo(), claxx);
} else if (claxx instanceof CityActivity) {
presenter = (S) new CityPresenter(InjectionUtils.getSharedPreference(), InjectionUtils.providesDataRepo(), claxx);
} else {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
package com.udacity.exploreindia.ui.StatesWithCities;

/**
* Created by Arun K Babu on 10-May-18.
*/

// TODO: This class can be deleted after linking with real data

/**
* Used for saving the dummy data for StatesWithCitiesScreen
*/
public class CityData
{
private int mImageId;
private String mPlaceName;

public CityData(int imageResourceId, String placeName) {
mImageId = imageResourceId;
mPlaceName = placeName;
}

public int getImageResourceId() {
return mImageId;
}

public String getPlaceName() {
return mPlaceName;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
package com.udacity.exploreindia.ui.StatesWithCities;

import android.graphics.Rect;
import android.support.v7.widget.RecyclerView;
import android.view.View;

/**
* Created by Arun K Babu on 11-May-18.
*/

/**
* Adds some empty space between the views
*/
public class GridSpacingItemDecoration extends RecyclerView.ItemDecoration {
private int space;

public GridSpacingItemDecoration(int space) {
this.space = space;
}

@Override
public void getItemOffsets(Rect outRect, View view,
RecyclerView parent, RecyclerView.State state) {
outRect.left = space;
outRect.right = space;
outRect.bottom = space;
outRect.top = 0;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
package com.udacity.exploreindia.ui.StatesWithCities;

import android.content.Context;
import android.support.annotation.NonNull;
import android.support.v4.view.PagerAdapter;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;

import com.squareup.picasso.Picasso;
import com.udacity.exploreindia.R;

import java.util.ArrayList;

/**
* Created by Arun K Babu on 10-May-18.
*/

public class MajorCitiesSliderAdapter extends PagerAdapter
{
private Context mContext;
private ArrayList<CityData> mMajorCitiesData;

public MajorCitiesSliderAdapter (Context context, ArrayList<CityData> majorCitiesData) {
mContext = context;
mMajorCitiesData = majorCitiesData;
}

@Override
public int getCount() {
return mMajorCitiesData.size();
}

@Override
public boolean isViewFromObject(@NonNull View view, @NonNull Object object) {
return view == object;
}

@NonNull
@Override
public Object instantiateItem(@NonNull ViewGroup container, int position) {
View view = LayoutInflater.from(mContext).inflate(R.layout.states_with_cities_top_item, container, false);

ImageView cityImage = view.findViewById(R.id.iv_city_photo);
TextView cityName = view.findViewById(R.id.tv_city_name);

CityData cityData = mMajorCitiesData.get(position);

Picasso.with(mContext)
.load(cityData.getImageResourceId())
.placeholder(R.drawable.ic_search) // TODO: Set the placeholder image if no image loaded
.error(R.drawable.ic_add_box) // TODO: Set the error image in-case load fails
.into(cityImage);

cityName.setText(cityData.getPlaceName());

container.addView(view);

return view;
}

@Override
public void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) {
container.removeView((View) object);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
package com.udacity.exploreindia.ui.StatesWithCities;

import android.support.annotation.NonNull;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;

import com.udacity.exploreindia.R;

import java.util.ArrayList;

/**
* Created by Arun K Babu on 10-May-18.
*/

public class SmallCitiesAdapter extends RecyclerView.Adapter<SmallCitiesAdapter.SmallCitiesViewHolder>
{
private ArrayList<CityData> mSmallCitiesData;

public SmallCitiesAdapter(ArrayList<CityData> smallCitiesData) {
mSmallCitiesData = smallCitiesData;
}

@NonNull
@Override
public SmallCitiesViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.states_with_cities_bottom_item, parent, false);
return new SmallCitiesViewHolder(view);
}

@Override
public void onBindViewHolder(@NonNull SmallCitiesViewHolder holder, int position) {
CityData cityData = mSmallCitiesData.get(position);

holder.smallCityImageView.setImageResource(cityData.getImageResourceId());
holder.smallCityTextView.setText(cityData.getPlaceName());
}

@Override
public int getItemCount() {
return mSmallCitiesData.size();
}


/**
* Recycler view adapter requires a ViewHolder. So it's created as an inner class
*/
class SmallCitiesViewHolder extends RecyclerView.ViewHolder
{
private ImageView smallCityImageView;
private TextView smallCityTextView;

public SmallCitiesViewHolder(View itemView) {
super(itemView);
this.smallCityImageView = itemView.findViewById(R.id.iv_small_city_photo);
this.smallCityTextView = itemView.findViewById(R.id.tv_small_city_name);
}
}
}
Original file line number Diff line number Diff line change
@@ -1,14 +1,15 @@
package com.udacity.exploreindia.ui.StatesWithCities;

import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

import com.udacity.exploreindia.R;
import com.udacity.exploreindia.base.BaseActivity;
import com.udacity.exploreindia.databinding.ActivityStatesWithCitiesBinding;

public class StatesWithCitiesActivity extends BaseActivity<StatesWithCitiesContract.Presenter, ActivityStatesWithCitiesBinding> implements StatesWithCitiesContract.View {
public class StatesWithCitiesActivity extends BaseActivity<StatesWithCitiesContract.Presenter,
ActivityStatesWithCitiesBinding> implements StatesWithCitiesContract.View
{

@Override
protected void onCreate(Bundle savedInstanceState) {
Expand Down
Loading