Commit 26ed5475 authored by Sajal Narang's avatar Sajal Narang Committed by GitHub

Merge pull request #74 from wncc/back-navigation

Implement back navigation
parents 67138833 dc799311
......@@ -15,6 +15,7 @@ import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBarDrawerToggle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
......@@ -47,8 +48,7 @@ import static in.ac.iitb.gymkhana.iitbapp.Constants.MY_PERMISSIONS_REQUEST_READ_
import static in.ac.iitb.gymkhana.iitbapp.Constants.RESULT_LOAD_IMAGE;
public class MainActivity extends AppCompatActivity
implements NavigationView.OnNavigationItemSelectedListener {
public class MainActivity extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener {
private static final String TAG = "MainActivity";
......@@ -56,6 +56,7 @@ public class MainActivity extends AppCompatActivity
NotificationsResponse notificationsResponse;
private User currentUser;
private boolean showNotifications = false;
FeedFragment feedFragment;
@Override
protected void onCreate(Bundle savedInstanceState) {
......@@ -74,7 +75,7 @@ public class MainActivity extends AppCompatActivity
drawer.addDrawerListener(toggle);
toggle.syncState();
FeedFragment feedFragment = new FeedFragment();
feedFragment = new FeedFragment();
updateFragment(feedFragment);
// fetchNotifications();
......@@ -150,6 +151,8 @@ public class MainActivity extends AppCompatActivity
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
if (drawer.isDrawerOpen(GravityCompat.START)) {
drawer.closeDrawer(GravityCompat.START);
} else if (feedFragment != null && feedFragment.isVisible()) {
finish();
} else {
super.onBackPressed();
}
......@@ -187,7 +190,7 @@ public class MainActivity extends AppCompatActivity
switch (id) {
case R.id.nav_feed:
FeedFragment feedFragment = new FeedFragment();
feedFragment = new FeedFragment();
updateFragment(feedFragment);
break;
case R.id.nav_my_events:
......@@ -249,14 +252,20 @@ public class MainActivity extends AppCompatActivity
return true;
}
private void updateFragment(Fragment fragment) {
Bundle bundle = new Bundle();
bundle.putString(Constants.SESSION_ID, session.pref.getString(Constants.SESSION_ID, "Error"));
public void updateFragment(Fragment fragment) {
Log.d(TAG, "updateFragment: " + fragment.toString());
Bundle bundle = fragment.getArguments();
if (bundle == null) {
bundle = new Bundle();
}
bundle.putString(SESSION_ID, session.pref.getString(SESSION_ID, "Error"));
fragment.setArguments(bundle);
FragmentManager manager = getSupportFragmentManager();
if (fragment instanceof FeedFragment)
manager.popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE);
FragmentTransaction transaction = manager.beginTransaction();
transaction.replace(R.id.framelayout_for_fragment, fragment, fragment.getTag());
transaction.commit();
transaction.addToBackStack(fragment.getTag()).commit();
}
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
......
......@@ -11,6 +11,7 @@ import android.view.ViewGroup;
import android.widget.CalendarView;
import android.widget.Toast;
import in.ac.iitb.gymkhana.iitbapp.MainActivity;
import in.ac.iitb.gymkhana.iitbapp.R;
/**
......@@ -58,11 +59,7 @@ public class CalendarFragment extends BaseFragment {
@Override
public void onClick(View v) {
AddEventFragment addEventFragment = new AddEventFragment();
addEventFragment.setArguments(getArguments());
FragmentTransaction ft = getChildFragmentManager().beginTransaction();
ft.replace(R.id.calendar_layout, addEventFragment);
ft.addToBackStack("addEvent");
ft.commit();
((MainActivity) getActivity()).updateFragment(addEventFragment);
}
});
return view;
......
......@@ -21,6 +21,7 @@ import java.util.List;
import in.ac.iitb.gymkhana.iitbapp.ActivityBuffer;
import in.ac.iitb.gymkhana.iitbapp.Constants;
import in.ac.iitb.gymkhana.iitbapp.ItemClickListener;
import in.ac.iitb.gymkhana.iitbapp.MainActivity;
import in.ac.iitb.gymkhana.iitbapp.R;
import in.ac.iitb.gymkhana.iitbapp.adapter.FeedAdapter;
import in.ac.iitb.gymkhana.iitbapp.api.RetrofitInterface;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment