Skip to content

Commit

Permalink
Add bottom sheet menu.
Browse files Browse the repository at this point in the history
  • Loading branch information
paolorotolo committed Aug 7, 2016
1 parent 70cd2ab commit 314a454
Show file tree
Hide file tree
Showing 18 changed files with 204 additions and 183 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,6 @@ private void goThroughHelloActivity() throws InterruptedException {
@Test
public void check_001_checkIfToolbarIsDisplayed() throws InterruptedException {
goThroughHelloActivity();
onView(withId(R.id.toolbar)).check(matches(isDisplayed()));
onView(withId(R.id.activity_main_toolbar)).check(matches(isDisplayed()));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@ boolean editorAction(TextView view, int actionId, KeyEvent event) {
}

private void initActionBar() {
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
Toolbar toolbar = (Toolbar) findViewById(R.id.activity_main_toolbar);

if (toolbar != null) {
setSupportActionBar(toolbar);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ public class AddA1CActivity extends AddReadingActivity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_add_hb1ac);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
Toolbar toolbar = (Toolbar) findViewById(R.id.activity_main_toolbar);

if (toolbar != null) {
setSupportActionBar(toolbar);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ public class AddCholesterolActivity extends AddReadingActivity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_add_cholesterol);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
Toolbar toolbar = (Toolbar) findViewById(R.id.activity_main_toolbar);

if (toolbar != null) {
setSupportActionBar(toolbar);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ public class AddGlucoseActivity extends AddReadingActivity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_add_glucose);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
Toolbar toolbar = (Toolbar) findViewById(R.id.activity_main_toolbar);

if (toolbar != null) {
setSupportActionBar(toolbar);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ public class AddKetoneActivity extends AddReadingActivity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_add_ketone);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
Toolbar toolbar = (Toolbar) findViewById(R.id.activity_main_toolbar);

if (toolbar != null) {
setSupportActionBar(toolbar);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ public class AddPressureActivity extends AddReadingActivity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_add_pressure);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
Toolbar toolbar = (Toolbar) findViewById(R.id.activity_main_toolbar);

if (toolbar != null) {
setSupportActionBar(toolbar);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ public class AddWeightActivity extends AddReadingActivity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_add_weight);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
Toolbar toolbar = (Toolbar) findViewById(R.id.activity_main_toolbar);

if (toolbar != null) {
setSupportActionBar(toolbar);
Expand Down
133 changes: 72 additions & 61 deletions app/src/main/java/org/glucosio/android/activity/MainActivity.java
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,9 @@
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.design.widget.AppBarLayout;
import android.support.design.widget.BottomSheetBehavior;
import android.support.design.widget.CoordinatorLayout;
import android.support.design.widget.Snackbar;
import android.support.design.widget.TabLayout;
Expand All @@ -44,6 +46,8 @@
import android.view.View;
import android.view.WindowManager;
import android.view.animation.AlphaAnimation;
import android.widget.AdapterView;
import android.widget.GridView;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.RadioButton;
Expand All @@ -65,9 +69,14 @@

import org.glucosio.android.GlucosioApplication;
import org.glucosio.android.R;
import org.glucosio.android.adapter.GridImageAdapter;
import org.glucosio.android.adapter.HomePagerAdapter;
import org.glucosio.android.analytics.Analytics;
import org.glucosio.android.db.DatabaseHandler;
import org.glucosio.android.db.GlucoseReading;
import org.glucosio.android.db.HB1ACReading;
import org.glucosio.android.db.KetoneReading;
import org.glucosio.android.db.WeightReading;
import org.glucosio.android.presenter.ExportPresenter;
import org.glucosio.android.presenter.MainPresenter;

Expand All @@ -81,16 +90,20 @@ public class MainActivity extends AppCompatActivity implements DatePickerDialog.
private static final int REQUEST_INVITE = 1;
private final String INTENT_EXTRA_DROPDOWN = "history_dropdown";
private static final String INTENT_EXTRA_PAGER = "pager";
private CoordinatorLayout coordinatorLayout;
private ExportPresenter exportPresenter;
private RadioButton exportRangeButton;
private HomePagerAdapter homePagerAdapter;
private MainPresenter presenter;
private ViewPager viewPager;
private GridView addReadingView;
private BottomSheetBehavior bottomSheetBehavior;
private View bottomSheetMenu;

private TextView exportDialogDateFrom;
private TextView exportDialogDateTo;

private FloatingActionMenu fabMenu;
private FloatingActionButton fabAddReading;
private FloatingActionButton fabGlucoseEmpty;
private Toolbar toolbar;
private TabLayout tabLayout;
Expand All @@ -104,9 +117,9 @@ protected void onCreate(Bundle savedInstanceState) {
setContentView(R.layout.activity_main);
initPresenters(application);

toolbar = (Toolbar) findViewById(R.id.toolbar);
tabLayout = (TabLayout) findViewById(R.id.tab_layout);
viewPager = (ViewPager) findViewById(R.id.pager);
toolbar = (Toolbar) findViewById(R.id.activity_main_toolbar);
tabLayout = (TabLayout) findViewById(R.id.activity_main_tab_layout);
viewPager = (ViewPager) findViewById(R.id.activity_main_pager);

if (toolbar != null) {
setSupportActionBar(toolbar);
Expand All @@ -116,6 +129,7 @@ protected void onCreate(Bundle savedInstanceState) {
getSupportActionBar().setLogo(R.drawable.ic_logo);
}

coordinatorLayout = (CoordinatorLayout) findViewById(R.id.activity_main_coordinator_layout);
homePagerAdapter = new HomePagerAdapter(getSupportFragmentManager(), getApplicationContext());

viewPager.setAdapter(homePagerAdapter);
Expand All @@ -137,8 +151,8 @@ public void onPageScrolled(int position, float positionOffset, int positionOffse
public void onPageSelected(int position) {
if (position == 2) {
hideFabAnimation();
LinearLayout emptyLayout = (LinearLayout) findViewById(R.id.mainactivity_empty_layout);
ViewPager pager = (ViewPager) findViewById(R.id.pager);
LinearLayout emptyLayout = (LinearLayout) findViewById(R.id.activity_main_empty_layout);
ViewPager pager = (ViewPager) findViewById(R.id.activity_main_pager);
if (pager.getVisibility() == View.GONE) {
pager.setVisibility(View.VISIBLE);
emptyLayout.setVisibility(View.INVISIBLE);
Expand All @@ -155,24 +169,45 @@ public void onPageScrollStateChanged(int state) {
}
});

fabGlucoseEmpty = (FloatingActionButton) findViewById(R.id.fab_glucose_empty);
fabMenu = (FloatingActionMenu) findViewById(R.id.fab_menu_add_reading);
fabMenu.setClosedOnTouchOutside(true);
fabMenu.setOnMenuToggleListener(new FloatingActionMenu.OnMenuToggleListener() {
fabGlucoseEmpty = (FloatingActionButton) findViewById(R.id.activity_main_fab_glucose_empty);
fabGlucoseEmpty.setOnClickListener(new View.OnClickListener() {
@Override
public void onMenuToggle(boolean opened) {
// When Fab Menu is opened, dim the main view.
if (opened) {
if (!presenter.isdbEmpty()) {
AlphaAnimation alpha = new AlphaAnimation(1F, 0.2F);
alpha.setDuration(600);
alpha.setFillAfter(true);
viewPager.startAnimation(alpha);
}
} else {
if (!presenter.isdbEmpty()) {
removeWhiteOverlay();
}
public void onClick(View view) {
openNewAddActivity(AddGlucoseActivity.class);
}
});
fabAddReading = (FloatingActionButton) findViewById(R.id.activity_main_fab_add_reading);
fabAddReading.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
bottomSheetBehavior.setState(BottomSheetBehavior.STATE_EXPANDED);
}
});

bottomSheetMenu = coordinatorLayout.findViewById(R.id.activity_main_add_gridview);
bottomSheetBehavior = BottomSheetBehavior.from(bottomSheetMenu);
addReadingView = (GridView) findViewById(R.id.activity_main_add_gridview);
addReadingView.setAdapter(new GridImageAdapter(this));
addReadingView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
switch (i){
case 0: openNewAddActivity(AddGlucoseActivity.class);
break;
case 1: openNewAddActivity(AddA1CActivity.class);
break;
case 2: openNewAddActivity(AddWeightActivity.class);
break;
case 3: openNewAddActivity(AddKetoneActivity.class);
break;
case 4: openNewAddActivity(AddPressureActivity.class);
break;
case 5: openNewAddActivity(AddCholesterolActivity.class);
break;
default:
// Should NOT happen
// Anyway, open Glucose Activity just to be sure
openNewAddActivity(AddGlucoseActivity.class);
}
}
});
Expand Down Expand Up @@ -300,32 +335,8 @@ public void openPreferences() {
finish();
}

public void onGlucoseFabClicked(View v) {
openNewAddActivity(AddGlucoseActivity.class);
}

public void onKetoneFabClicked(View v) {
openNewAddActivity(AddKetoneActivity.class);
}

public void onPressureFabClicked(View v) {
openNewAddActivity(AddPressureActivity.class);
}

public void onHB1ACFabClicked(View v) {
openNewAddActivity(AddA1CActivity.class);
}

public void onCholesterolFabClicked(View v) {
openNewAddActivity(AddCholesterolActivity.class);
}

public void onWeightFabClicked(View v) {
openNewAddActivity(AddWeightActivity.class);
}

private void openNewAddActivity(Class<?> activity){
fabMenu.toggle(false);
bottomSheetBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED);
Intent intent = new Intent(this, activity);
// Pass pager position to open it again later
Bundle b = new Bundle();
Expand Down Expand Up @@ -504,16 +515,16 @@ private boolean validateExportDialog() {
}

public CoordinatorLayout getFabView() {
return (CoordinatorLayout) findViewById(R.id.coordinator_layout);
return (CoordinatorLayout) findViewById(R.id.activity_main_coordinator_layout);
}

public void reloadFragmentAdapter() {
homePagerAdapter.notifyDataSetChanged();
}

public void turnOffToolbarScrolling() {
Toolbar mToolbar = (Toolbar) findViewById(R.id.toolbar);
AppBarLayout appBarLayout = (AppBarLayout) findViewById(R.id.appbar_layout);
Toolbar mToolbar = (Toolbar) findViewById(R.id.activity_main_toolbar);
AppBarLayout appBarLayout = (AppBarLayout) findViewById(R.id.activity_main_appbar_layout);

//turn off scrolling
AppBarLayout.LayoutParams toolbarLayoutParams = (AppBarLayout.LayoutParams) mToolbar.getLayoutParams();
Expand All @@ -526,8 +537,8 @@ public void turnOffToolbarScrolling() {
}

public void turnOnToolbarScrolling() {
Toolbar mToolbar = (Toolbar) findViewById(R.id.toolbar);
AppBarLayout appBarLayout = (AppBarLayout) findViewById(R.id.appbar_layout);
Toolbar mToolbar = (Toolbar) findViewById(R.id.activity_main_toolbar);
AppBarLayout appBarLayout = (AppBarLayout) findViewById(R.id.activity_main_appbar_layout);

//turn on scrolling
AppBarLayout.LayoutParams toolbarLayoutParams = (AppBarLayout.LayoutParams) mToolbar.getLayoutParams();
Expand All @@ -540,11 +551,11 @@ public void turnOnToolbarScrolling() {
}

public Toolbar getToolbar() {
return (Toolbar) findViewById(R.id.toolbar);
return (Toolbar) findViewById(R.id.activity_main_toolbar);
}

private void hideFabAnimation() {
final View fab = findViewById(R.id.fab_menu_add_reading);
final View fab = findViewById(R.id.activity_main_fab_add_reading);
fab.animate()
.translationY(-5)
.alpha(0.0f)
Expand All @@ -558,7 +569,7 @@ public void onAnimationEnd(Animator animation) {
}

private void showFabAnimation() {
final View fab = findViewById(R.id.fab_menu_add_reading);
final View fab = findViewById(R.id.activity_main_fab_add_reading);
if (fab.getVisibility() == View.INVISIBLE) {
// Prepare the View for the animation
fab.setVisibility(View.VISIBLE);
Expand Down Expand Up @@ -588,26 +599,26 @@ public void showInviteDialog() {
}

public void checkIfEmptyLayout() {
LinearLayout emptyLayout = (LinearLayout) findViewById(R.id.mainactivity_empty_layout);
ViewPager pager = (ViewPager) findViewById(R.id.pager);
LinearLayout emptyLayout = (LinearLayout) findViewById(R.id.activity_main_empty_layout);
ViewPager pager = (ViewPager) findViewById(R.id.activity_main_pager);

if (presenter.isdbEmpty()) {
pager.setVisibility(View.GONE);
tabLayout.setVisibility(View.GONE);
emptyLayout.setVisibility(View.VISIBLE);

// If empty show only Glucose fab
fabMenu.setVisibility(View.GONE);
fabAddReading.setVisibility(View.GONE);
fabGlucoseEmpty.setVisibility(View.VISIBLE);

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
if (getResources().getConfiguration().orientation == 1) {
// If Portrait choose vertical curved line
ImageView arrow = (ImageView) findViewById(R.id.mainactivity_arrow);
ImageView arrow = (ImageView) findViewById(R.id.activity_main_arrow);
arrow.setBackground(getResources().getDrawable(R.drawable.curved_line_vertical));
} else {
// Else choose horizontal one
ImageView arrow = (ImageView) findViewById(R.id.mainactivity_arrow);
ImageView arrow = (ImageView) findViewById(R.id.activity_main_arrow);
arrow.setBackground((getResources().getDrawable(R.drawable.curved_line_horizontal)));
}
}
Expand Down
Loading

0 comments on commit 314a454

Please sign in to comment.