Skip to content

Commit

Permalink
cosmetics and bug fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
misto committed Aug 6, 2018
1 parent 73cbee0 commit 752a2f5
Show file tree
Hide file tree
Showing 23 changed files with 463 additions and 166 deletions.
11 changes: 7 additions & 4 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@ android {
applicationId "ch.beerpro"
minSdkVersion 21
targetSdkVersion 28
versionCode 2
versionName "Alpha 2"
versionCode 7
versionName "Alpha 7"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
vectorDrawables.useSupportLibrary = true
}
Expand All @@ -34,8 +34,11 @@ dependencies {
implementation 'com.google.android.material:material:1.0.0-beta01'
implementation 'com.google.firebase:firebase-firestore:17.0.4'
implementation 'com.firebaseui:firebase-ui-firestore:4.0.0'
implementation 'com.squareup.picasso:picasso:2.71828'
implementation 'jp.wasabeef:picasso-transformations:2.2.1'

// an alternative to picasso
implementation 'com.github.bumptech.glide:glide:4.7.1'
annotationProcessor 'com.github.bumptech.glide:compiler:4.7.1'

implementation 'androidx.legacy:legacy-support-v4:1.0.0-beta01'
implementation 'androidx.recyclerview:recyclerview:1.0.0-beta01'
implementation 'com.github.yalantis:ucrop:2.2.2-native'
Expand Down
8 changes: 8 additions & 0 deletions app/google-services.json
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,14 @@
"certificate_hash": "bbb933acdf53fc378eeaa0c932cec9b1db5fd8d7"
}
},
{
"client_id": "449677194575-ogb0ivkadn329eknqlo50d5lhmqgtt54.apps.googleusercontent.com",
"client_type": 1,
"android_info": {
"package_name": "ch.beerpro",
"certificate_hash": "c2b88fedf32cf384a5863f6ed19652d8f3f3b8ca"
}
},
{
"client_id": "449677194575-r12ho5t13vs7db7sgna01d5mv1coo7th.apps.googleusercontent.com",
"client_type": 3
Expand Down
8 changes: 5 additions & 3 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

<application
android:name=".MyApplication"
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:name=".MyApplication"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
Expand Down Expand Up @@ -37,15 +37,17 @@
android:name="android.support.PARENT_ACTIVITY"
android:value="ch.beerpro.search.SearchActivity" />
</activity>
<activity android:name=".rating.RatingActivity" android:windowSoftInputMode="adjustResize">
<activity
android:name=".rating.RatingActivity"
android:windowSoftInputMode="adjustResize">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".single.SingleBeerActivity" />
</activity>
<activity
android:name="com.yalantis.ucrop.UCropActivity"
android:screenOrientation="portrait"
android:theme="@style/Theme.AppCompat.Light.NoActionBar"/>
android:theme="@style/Theme.AppCompat.Light.NoActionBar" />
</application>

</manifest>
58 changes: 58 additions & 0 deletions app/src/main/java/ch/beerpro/ToolbarScrollingBehaviour.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
package ch.beerpro;

import android.content.Context;
import android.content.res.Resources;
import android.graphics.Color;
import android.util.AttributeSet;
import android.util.Log;
import android.view.View;
import android.widget.LinearLayout;
import androidx.annotation.NonNull;
import androidx.appcompat.widget.Toolbar;
import androidx.coordinatorlayout.widget.CoordinatorLayout;
import androidx.core.graphics.ColorUtils;
import androidx.core.view.ViewCompat;

public class ToolbarScrollingBehaviour<V extends View> extends CoordinatorLayout.Behavior<V> {

private static final String TAG = "ToolbarScrollingBehavio";

public ToolbarScrollingBehaviour(Context context, AttributeSet attrs) {
super(context, attrs);
}

@Override
public boolean onStartNestedScroll(@NonNull CoordinatorLayout coordinatorLayout, @NonNull V child,
@NonNull View directTargetChild, @NonNull View target, int axes, int type) {
return axes == ViewCompat.SCROLL_AXIS_VERTICAL;
}

@Override
public void onNestedPreScroll(@NonNull CoordinatorLayout coordinatorLayout, @NonNull V child, @NonNull View target,
int dx, int dy, @NonNull int[] consumed, int type) {
super.onNestedPreScroll(coordinatorLayout, child, target, dx, dy, consumed, type);
LinearLayout toolbarLayout = (LinearLayout) child;
View statusBar = toolbarLayout.getChildAt(0);
Toolbar toolbar = (Toolbar) toolbarLayout.getChildAt(1);

int toolbarHeight = toolbarLayout.getHeight();

int scrollY = target.getScrollY() + dy;
float alpha = (scrollY - (toolbarHeight / 2f)) / (1.0f * toolbarHeight);

Resources resources = child.getResources();

int newToolbarColor = ColorUtils.setAlphaComponent(resources.getColor(R.color.colorPrimary),
Math.max(Math.min((int) (255 * alpha), 255), 0));
toolbarLayout.setBackgroundColor(newToolbarColor);

int newToolbarTextColor = ColorUtils.setAlphaComponent(resources.getColor(R.color.colorAccent),
Math.max(Math.min((int) (255 * alpha), 255), 0));
toolbar.setTitleTextColor(newToolbarTextColor);

int newStatusbarColor = ColorUtils.setAlphaComponent(resources.getColor(R.color.colorPrimaryDark),
Math.max(Math.min((int) (255 * alpha), 255), 0));
statusBar.setBackgroundColor(newStatusbarColor);

}
}
20 changes: 15 additions & 5 deletions app/src/main/java/ch/beerpro/home/FeedRecyclerViewAdapter.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package ch.beerpro.home;

import android.net.Uri;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
Expand All @@ -15,15 +17,17 @@
import ch.beerpro.helpers.EntityDiffItemCallback;
import ch.beerpro.models.Rating;
import ch.beerpro.single.OnRatingLikedListener;
import com.bumptech.glide.Glide;
import com.bumptech.glide.request.RequestOptions;
import com.google.firebase.auth.FirebaseUser;
import com.squareup.picasso.Picasso;
import jp.wasabeef.picasso.transformations.CropCircleTransformation;

import java.text.DateFormat;


public class FeedRecyclerViewAdapter extends ListAdapter<Rating, FeedRecyclerViewAdapter.ViewHolder> {

private static final String TAG = "FeedRecyclerViewAdapter";

private static final EntityDiffItemCallback<Rating> DIFF_CALLBACK = new EntityDiffItemCallback<>();

private final OnRatingLikedListener listener;
Expand Down Expand Up @@ -83,6 +87,7 @@ class ViewHolder extends RecyclerView.ViewHolder {
}

void bind(Rating item, OnRatingLikedListener listener) {
Log.i(TAG, item.toString());
beerName.setText(item.getBeerName());
comment.setText(item.getComment());

Expand All @@ -93,16 +98,18 @@ void bind(Rating item, OnRatingLikedListener listener) {
date.setText(formattedDate);

if (item.getPhoto() != null) {
Picasso.get().load(item.getPhoto()).into(photo);
// Take a look at https://bumptech.github.io/glide/int/recyclerview.html
Glide.with(itemView).load(item.getPhoto()).into(photo);
} else {
Glide.with(itemView).clear(photo);
photo.setVisibility(View.GONE);
}

authorName.setText(item.getUserName());
Picasso.get().load(item.getUserPhoto()).transform(new CropCircleTransformation()).into(avatar);
Glide.with(itemView).load(item.getUserPhoto()).apply(new RequestOptions().circleCrop()).into(avatar);

numLikes.setText(itemView.getResources().getString(R.string.fmt_num_ratings, item.getLikes().size()));
if(item.getLikes().containsKey(user.getUid())) {
if (item.getLikes().containsKey(user.getUid())) {
like.setColorFilter(itemView.getResources().getColor(R.color.colorPrimary));
} else {
like.setColorFilter(itemView.getResources().getColor(android.R.color.darker_gray));
Expand All @@ -111,5 +118,8 @@ void bind(Rating item, OnRatingLikedListener listener) {
like.setOnClickListener(v -> listener.onRatingLikedListener(item));
}
}



}
}
16 changes: 15 additions & 1 deletion app/src/main/java/ch/beerpro/home/HomeScreenFeedFragment.java
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
import androidx.recyclerview.widget.DividerItemDecoration;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
import butterknife.BindView;
import butterknife.ButterKnife;
import ch.beerpro.R;
Expand All @@ -20,13 +21,17 @@
import java.util.ArrayList;
import java.util.List;

public class HomeScreenFeedFragment extends Fragment implements OnRatingLikedListener {
public class HomeScreenFeedFragment extends Fragment
implements OnRatingLikedListener, SwipeRefreshLayout.OnRefreshListener {

private static final String TAG = "FeedFragment";

@BindView(R.id.recyclerView)
RecyclerView recyclerView;

@BindView(R.id.swipeRefreshLayout)
SwipeRefreshLayout swipeRefreshLayout;

private FeedRecyclerViewAdapter adapter;
private HomeScreenViewModel model;

Expand All @@ -50,6 +55,8 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle sa

recyclerView.setAdapter(adapter);

swipeRefreshLayout.setOnRefreshListener(this);

return rootView;
}

Expand All @@ -61,4 +68,11 @@ private void updateRatings(List<Rating> ratings) {
public void onRatingLikedListener(Rating rating) {
model.toggleLike(rating);
}

@Override
public void onRefresh() {
updateRatings(model.getAllRatings().getValue());
swipeRefreshLayout.setRefreshing(false);
adapter.notifyDataSetChanged();
}
}
16 changes: 4 additions & 12 deletions app/src/main/java/ch/beerpro/home/HomeScreenProfileFragment.java
Original file line number Diff line number Diff line change
@@ -1,29 +1,20 @@
package ch.beerpro.home;

import android.content.ContentResolver;
import android.net.Uri;
import android.os.Bundle;
import android.util.DisplayMetrics;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;

import ch.beerpro.R;
import com.bumptech.glide.Glide;
import com.bumptech.glide.request.RequestOptions;
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.auth.FirebaseUser;
import com.squareup.picasso.Picasso;

import java.io.FileNotFoundException;
import java.io.InputStream;

import androidx.core.graphics.drawable.RoundedBitmapDrawable;
import androidx.core.graphics.drawable.RoundedBitmapDrawableFactory;
import androidx.fragment.app.Fragment;
import jp.wasabeef.picasso.transformations.CropCircleTransformation;
import jp.wasabeef.picasso.transformations.RoundedCornersTransformation;

public class HomeScreenProfileFragment extends Fragment {

Expand All @@ -46,7 +37,8 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle sa
String name = user.getDisplayName();
userProfileNameText.setText(name);
Uri photoUrl = user.getPhotoUrl();
Picasso.get().load(photoUrl).transform(new CropCircleTransformation()).into(userProfileImageView);
Glide.with(this).load(photoUrl).apply(new RequestOptions().circleCrop()).into(userProfileImageView);

}

return rootView;
Expand Down
30 changes: 19 additions & 11 deletions app/src/main/java/ch/beerpro/home/HomeScreenSearchFragment.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,11 @@
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
import androidx.viewpager.widget.ViewPager;
import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;
import ch.beerpro.R;
import ch.beerpro.helpers.ViewPagerAdapter;
import ch.beerpro.search.SearchActivity;
Expand All @@ -17,6 +21,11 @@
public class HomeScreenSearchFragment extends Fragment {

private static final String TAG = "HomeScreenActSearch";
@BindView(R.id.viewpager)
ViewPager viewPager;
@BindView(R.id.tablayout)

TabLayout tabLayout;
private ViewPagerAdapter adapter;

public HomeScreenSearchFragment() {
Expand All @@ -26,18 +35,8 @@ public HomeScreenSearchFragment() {
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
setHasOptionsMenu(true);
View rootView = inflater.inflate(R.layout.fragment_search_screen, container, false);
View beerSearchButton = rootView.findViewById(R.id.beerSearchButton);
beerSearchButton.setOnClickListener(view -> {

Intent intent = new Intent(getActivity(), SearchActivity.class);
ActivityOptions options = ActivityOptions
.makeSceneTransitionAnimation(getActivity(), beerSearchButton, "search");

startActivity(intent, options.toBundle());
});
ButterKnife.bind(this, rootView);

ViewPager viewPager = rootView.findViewById(R.id.viewpager);
TabLayout tabLayout = rootView.findViewById(R.id.tablayout);
adapter = new ViewPagerAdapter(getChildFragmentManager());
adapter.addFragment(new BeerCategoriesFragment(), "Bierart");
adapter.addFragment(new BeerManufacturersFragment(), "Brauerei");
Expand All @@ -46,4 +45,13 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle sa

return rootView;
}

@OnClick(R.id.beerSearchButton)
public void openSearchActivity(View beerSearchButton) {
Intent intent = new Intent(getActivity(), SearchActivity.class);
ActivityOptions options =
ActivityOptions.makeSceneTransitionAnimation(getActivity(), beerSearchButton, "search");

startActivity(intent, options.toBundle());
}
}
8 changes: 8 additions & 0 deletions app/src/main/java/ch/beerpro/models/Rating.java
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,14 @@ public Rating() {

}

@Override
public String toString() {
return "Rating{" + "id='" + id + '\'' + ", beerId='" + beerId + '\'' + ", beerName='" + beerName + '\'' +
", userId='" + userId + '\'' + ", userName='" + userName + '\'' + ", userPhoto='" + userPhoto + '\'' +
", photo='" + photo + '\'' + ", rating=" + rating + ", comment='" + comment + '\'' + ", likes=" +
likes + ", creationDate=" + creationDate + '}';
}

public String getBeerName() {
return beerName;
}
Expand Down
6 changes: 3 additions & 3 deletions app/src/main/java/ch/beerpro/rating/RatingActivity.java
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,11 @@
import butterknife.ButterKnife;
import ch.beerpro.R;
import ch.beerpro.models.Beer;
import com.bumptech.glide.Glide;
import com.bumptech.glide.request.RequestOptions;
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.auth.FirebaseUser;
import com.squareup.picasso.Picasso;
import com.yalantis.ucrop.UCrop;
import jp.wasabeef.picasso.transformations.CropCircleTransformation;
import pl.aprilapps.easyphotopicker.DefaultCallback;
import pl.aprilapps.easyphotopicker.EasyImage;
import pl.tajchert.nammu.Nammu;
Expand Down Expand Up @@ -101,7 +101,7 @@ public void permissionRefused() {

if (user != null) {
Uri photoUrl = user.getPhotoUrl();
Picasso.get().load(photoUrl).transform(new CropCircleTransformation()).into(avatar);
Glide.with(this).load(photoUrl).apply(new RequestOptions().circleCrop()).into(avatar);
}
if (model.getPhoto() != null) {
photo.setImageURI(model.getPhoto());
Expand Down
2 changes: 0 additions & 2 deletions app/src/main/java/ch/beerpro/search/SearchActivity.java
Original file line number Diff line number Diff line change
Expand Up @@ -54,8 +54,6 @@ protected void onCreate(Bundle savedInstanceState) {
tabLayout.setupWithViewPager(viewPager);

model = ViewModelProviders.of(this).get(SearchViewModel.class);

FirebaseFirestore.setLoggingEnabled(true);
}

@Override
Expand Down
Loading

0 comments on commit 752a2f5

Please sign in to comment.