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
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,10 @@ public class DetailActivity extends AppCompatActivity {

public static final String EVENT_EXTRA_ID = "event_extra_id";
private static final String EVENT_EXTRA = "event_extra";
private static final String EVENT_POSITION = "event_position";
private static final String EVENT_BOOKMARK = "event_bookmark";
private final String TAG = this.getClass().getSimpleName();
private int position;

private static final String EVENT_TYPE = "vnd.android.cursor.item/event";
private static final String EVENT_BEGIN_TIME = "beginTime";
Expand Down Expand Up @@ -114,6 +117,7 @@ private void initEvent() {
if (intent.hasExtra(EVENT_EXTRA)) {
// Get event directly
Events event = getIntent().getExtras().getParcelable(EVENT_EXTRA);
position = getIntent().getExtras().getInt(EVENT_POSITION);
mDetailViewModel.setEventData(event);
mDetailViewModel.getEventData().observe(this, this::bindEvent);
} else if (intent.hasExtra(EVENT_EXTRA_ID)) {
Expand Down Expand Up @@ -196,6 +200,16 @@ private void initCategories() {
}
}


@Override
public void onBackPressed() {
Intent intent = new Intent();
intent.putExtra(EVENT_POSITION,position);
intent.putExtra(EVENT_BOOKMARK, mEvent.isBookmarked());
setResult(RESULT_OK,intent);
super.onBackPressed();
}

private void initBookmark() {
// Setup bookmark
final Drawable bookmark = this.getDrawable(R.drawable.ic_bookmark);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@ public class HomeActivity extends AppCompatActivity {
private final String TAG_HOME_FRAGMENT = "home_fragment";
private final String TAG_FILTERS_FRAGMENT = "filters_fragment";
private final String TAG_BOOKMARKS_FRAGMENT = "bookmarks_fragment";
private static final int REQUEST_CODE = 1;

@BindView(R.id.bottom_navigation)
public BottomNavigation mBottomNav;
Expand Down Expand Up @@ -175,6 +176,16 @@ private void checkNotification() {

}


@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if(requestCode == REQUEST_CODE){
if(resultCode == RESULT_OK){
mHomeFragment.onActivityResult(REQUEST_CODE,RESULT_OK,data);
}
}
}

/**
* Load Home fragment initially
*/
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.funcheap.funmapsf.features.home;

import android.app.Activity;
import android.arch.lifecycle.ViewModelProviders;
import android.content.Intent;
import android.os.Build;
Expand Down Expand Up @@ -62,6 +63,10 @@ public class HomeFragment extends Fragment
"San Francisco", "Oakland", "Berkeley", "Mill Valley", "Mountain View", "Brisbane", "Alameda",
"Palo Alto", "Fremont", "San Jose", "Santa Clara", "Livermore", "Dublin", "Burlingame", "San Carlos"
};

private static final int REQUEST_CODE = 1;
private static final String EVENT_POSITION = "event_position";
private static final String EVENT_BOOKMARK = "event_bookmark";

private static final String TAG_MAP_FRAGMENT = "map_fragment";
private static final String TAG_LIST_FRAGMENT = "list_fragment";
Expand Down Expand Up @@ -399,4 +404,17 @@ private void initFilterListener() {
}
});
}


@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if(requestCode == REQUEST_CODE){
if(resultCode == Activity.RESULT_OK){
if(mHomePager.getCurrentItem()==1) {
((ListHomeFragment) ((HomePagerAdapter) mHomePager.getAdapter()).getRegisteredFragment(1)).
modifyAdapter(data.getExtras().getInt(EVENT_POSITION), data.getExtras().getBoolean(EVENT_BOOKMARK));
}
}
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.util.Log;
import android.util.SparseArray;
import android.view.ViewGroup;

import com.funcheap.funmapsf.features.list.home.ListHomeFragment;
import com.funcheap.funmapsf.features.map.MapFragment;
Expand All @@ -17,6 +19,8 @@

public class HomePagerAdapter extends FragmentPagerAdapter {

SparseArray<Fragment> registeredFragments = new SparseArray<>();

private final String TAG = this.getClass().getSimpleName();
private final int PAGE_COUNT = 2;
private String mTabTitles[] = new String[] { "Map", "List" };
Expand Down Expand Up @@ -50,4 +54,22 @@ public int getCount() {
public CharSequence getPageTitle(int position) {
return mTabTitles[position];
}


@Override
public Object instantiateItem(ViewGroup container, int position) {
Fragment fragment = (Fragment) super.instantiateItem(container, position);
registeredFragments.put(position, fragment);
return fragment;
}

@Override
public void destroyItem(ViewGroup container, int position, Object object) {
registeredFragments.remove(position);
super.destroyItem(container, position, object);
}

public Fragment getRegisteredFragment(int position) {
return registeredFragments.get(position);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,17 @@ protected void bindData() {
});
}

public void modifyAdapter(int position, boolean isBookmarked){
((EventAdapter) mEventRecycler.getAdapter()).updateEventBookmark(position,isBookmarked);
}


public void modifyBookmarks(int position, boolean isBookmarked){
((EventAdapter) mEventRecycler.getAdapter()).removeEventBookmark(position,isBookmarked);
}



/**
* This runs each time a change is detected in the list of Events.
* @param eventsList the new list of Events.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,22 @@ public void replaceEvents(List<Events> events) {
}


public void updateEventBookmark(int position, boolean isBookmarked) {
if(mEvents.get(position).isBookmarked()!=isBookmarked) {
mEvents.get(position).setBookmark(isBookmarked);
this.notifyItemChanged(position);
}
}


public void removeEventBookmark(int position, boolean isBookmarked) {
if(!isBookmarked) {
mEvents.remove(position);
this.notifyItemRemoved(position);
}
}


private void insertHeaders() {
// add headers here
if(mEvents.size()>0) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,8 @@ public class EventDelegateAdapter extends AdapterDelegate<List<Events>> {
private ListBaseViewModel mListBaseViewModel;
private final String TAG = this.getClass().getSimpleName();
private static final String EVENT_EXTRA = "event_extra";
private static final String EVENT_POSITION = "event_position";
private static final int REQUEST_CODE = 1;

public EventDelegateAdapter(Activity activity) {
this.mInflater = activity.getLayoutInflater();
Expand Down Expand Up @@ -122,10 +124,10 @@ protected void onBindViewHolder(
{
Intent intent = new Intent(mContext, DetailActivity.class);
intent.putExtra(EVENT_EXTRA, items.get(position));
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.putExtra(EVENT_POSITION, position);
ActivityOptionsCompat options = ActivityOptionsCompat.
makeSceneTransitionAnimation((Activity) mContext, viewHolder.imgView, "profile");
mContext.startActivity(intent, options.toBundle());
((Activity) mContext).startActivityForResult(intent, REQUEST_CODE ,options.toBundle());
}
});

Expand Down