diff --git a/app/build.gradle b/app/build.gradle index ad1e505..350a376 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -29,12 +29,70 @@ android { } } +android { + packagingOptions { + exclude 'META-INF/DEPENDENCIES.txt' + exclude 'META-INF/LICENSE.txt' + exclude 'META-INF/NOTICE.txt' + exclude 'META-INF/NOTICE' + exclude 'META-INF/LICENSE' + exclude 'META-INF/DEPENDENCIES' + exclude 'META-INF/notice.txt' + exclude 'META-INF/license.txt' + exclude 'META-INF/dependencies.txt' + exclude 'META-INF/LGPL2.1' + } +} + +repositories { + jcenter() + mavenCentral() + maven { url "https://maven.google.com" } + maven { url "https://jitpack.io" } +} + dependencies { - compile "com.android.support:appcompat-v7:$rootProject.supportLibraryVersion" - compile "com.android.support:recyclerview-v7:$rootProject.supportLibraryVersion" - compile "com.android.support:cardview-v7:$rootProject.supportLibraryVersion" - compile "com.android.support:palette-v7:$rootProject.supportLibraryVersion" - compile "com.android.support:design:$rootProject.supportLibraryVersion" - compile "com.squareup.picasso:picasso:2.4.0" compile fileTree(dir: "libs", include: ["*.jar"]) + + compile 'com.android.support:appcompat-v7:' + rootProject.ext.supportLibraryVersion + compile 'com.android.support:cardview-v7:' + rootProject.ext.supportLibraryVersion + compile 'com.android.support:recyclerview-v7:' + rootProject.ext.supportLibraryVersion + compile 'com.android.support:support-v4:' + rootProject.ext.supportLibraryVersion + compile 'com.android.support:design:' + rootProject.ext.supportLibraryVersion + compile 'com.android.support:percent:' + rootProject.ext.supportLibraryVersion + compile 'com.android.support:palette-v7:' + rootProject.ext.supportLibraryVersion + compile 'com.android.support:support-vector-drawable:' + rootProject.ext.supportLibraryVersion + compile 'com.android.support:animated-vector-drawable:' + rootProject.ext.supportLibraryVersion + compile 'com.android.support:support-annotations:' + rootProject.ext.supportLibraryVersion + compile 'com.android.support:support-compat:' + rootProject.ext.supportLibraryVersion + compile 'com.android.support:support-core-ui:' + rootProject.ext.supportLibraryVersion + compile 'com.android.support:support-v13:' + rootProject.ext.supportLibraryVersion + compile 'com.android.support:support-v4:' + rootProject.ext.supportLibraryVersion + + compile 'com.flipboard:bottomsheet-core:1.5.3' + compile 'com.flipboard:bottomsheet-commons:1.5.3' + compile 'com.facebook.android:facebook-android-sdk:4.23.+' + compile 'com.github.coyarzun89:fabtransitionactivity:0.2.0' + compile 'com.github.bumptech.glide:glide:3.7.0' + compile 'com.squareup.picasso:picasso:2.5.2' + compile 'de.hdodenhof:circleimageview:2.0.0' + compile 'com.jakewharton:butterknife:8.6.0' + compile 'joda-time:joda-time:2.9.9' + compile 'com.android.support:multidex:1.0.1' + compile 'com.firebaseui:firebase-ui-database:0.4.0' + compile 'pub.devrel:easypermissions:0.1.5' + compile 'com.fasterxml.jackson.core:jackson-databind:2.7.3' + compile 'com.danikula:videocache:2.6.4' + compile 'com.dinuscxj:circleprogressbar:1.1.1' + compile 'com.afollestad.material-dialogs:core:0.9.4.5' + compile 'com.googlecode.mp4parser:isoparser:1.1.22' + compile 'javax.inject:javax.inject:1' + compile 'com.android.support:support-v4:26.+' + compile 'com.android.support.constraint:constraint-layout:1.0.2' + compile 'me.riddhimanadib.bottom-nav-bar:bottom-nav-bar:1.0.1' + compile 'com.android.support:design:26.+' + compile 'com.android.support:recyclerview-v7:26.+' + compile 'com.jakewharton:butterknife:8.6.0' + annotationProcessor 'com.jakewharton:butterknife-compiler:8.6.0' + testCompile 'junit:junit:4.12' } diff --git a/app/src/main/java/com/antonioleiva/materializeyourapp/DetailActivity.java b/app/src/main/java/com/antonioleiva/materializeyourapp/DetailActivity.java index d9a420d..169a543 100644 --- a/app/src/main/java/com/antonioleiva/materializeyourapp/DetailActivity.java +++ b/app/src/main/java/com/antonioleiva/materializeyourapp/DetailActivity.java @@ -22,11 +22,13 @@ import android.graphics.drawable.BitmapDrawable; import android.os.Build; import android.os.Bundle; +import android.support.design.widget.AppBarLayout; import android.support.design.widget.CollapsingToolbarLayout; import android.support.design.widget.FloatingActionButton; import android.support.v4.app.ActivityCompat; import android.support.v4.app.ActivityOptionsCompat; import android.support.v4.view.ViewCompat; +import android.support.v4.widget.NestedScrollView; import android.support.v7.app.AppCompatActivity; import android.support.v7.graphics.Palette; import android.support.v7.widget.Toolbar; @@ -36,44 +38,63 @@ import android.widget.ImageView; import android.widget.TextView; +import com.antonioleiva.materializeyourapp.widgets.SquareImageView; import com.squareup.picasso.Callback; import com.squareup.picasso.Picasso; +import butterknife.BindView; +import butterknife.ButterKnife; + public class DetailActivity extends AppCompatActivity { private static final String EXTRA_IMAGE = "com.antonioleiva.materializeyourapp.extraImage"; private static final String EXTRA_TITLE = "com.antonioleiva.materializeyourapp.extraTitle"; - private CollapsingToolbarLayout collapsingToolbarLayout; - public static void navigate(AppCompatActivity activity, View transitionImage, ViewModel viewModel) { - Intent intent = new Intent(activity, DetailActivity.class); + @BindView(R.id.image) ImageView image; + @BindView(R.id.toolbar) Toolbar toolbar; + @BindView(R.id.collapsing_toolbar) CollapsingToolbarLayout collapsingToolbar; + @BindView(R.id.app_bar_layout) AppBarLayout appBarLayout; + @BindView(R.id.title) TextView title; + @BindView(R.id.description) TextView description; + @BindView(R.id.scroll) NestedScrollView scroll; + @BindView(R.id.fab) FloatingActionButton fab; + + public static void navigate(AppCompatActivity fromActivity, View transitionImage, ViewModel viewModel) { + Intent intent = new Intent(fromActivity, DetailActivity.class); intent.putExtra(EXTRA_IMAGE, viewModel.getImage()); intent.putExtra(EXTRA_TITLE, viewModel.getText()); - ActivityOptionsCompat options = ActivityOptionsCompat.makeSceneTransitionAnimation(activity, transitionImage, EXTRA_IMAGE); - ActivityCompat.startActivity(activity, intent, options.toBundle()); + ActivityOptionsCompat options = ActivityOptionsCompat.makeSceneTransitionAnimation(fromActivity, transitionImage, EXTRA_IMAGE); + ActivityCompat.startActivity(fromActivity, intent, options.toBundle()); } @SuppressWarnings("ConstantConditions") - @Override protected void onCreate(Bundle savedInstanceState) { + @Override + protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); initActivityTransitions(); setContentView(R.layout.activity_detail); + ButterKnife.bind(this); - ViewCompat.setTransitionName(findViewById(R.id.app_bar_layout), EXTRA_IMAGE); + ViewCompat.setTransitionName(appBarLayout, EXTRA_IMAGE); supportPostponeEnterTransition(); - setSupportActionBar((Toolbar) findViewById(R.id.toolbar)); + setSupportActionBar(toolbar); getSupportActionBar().setDisplayHomeAsUpEnabled(true); + toolbar.setNavigationOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + onBackPressed(); + } + }); String itemTitle = getIntent().getStringExtra(EXTRA_TITLE); - collapsingToolbarLayout = (CollapsingToolbarLayout) findViewById(R.id.collapsing_toolbar); - collapsingToolbarLayout.setTitle(itemTitle); - collapsingToolbarLayout.setExpandedTitleColor(getResources().getColor(android.R.color.transparent)); + collapsingToolbar.setTitle(itemTitle); + collapsingToolbar.setExpandedTitleColor(getResources().getColor(android.R.color.transparent)); - final ImageView image = (ImageView) findViewById(R.id.image); Picasso.with(this).load(getIntent().getStringExtra(EXTRA_IMAGE)).into(image, new Callback() { - @Override public void onSuccess() { + @Override + public void onSuccess() { Bitmap bitmap = ((BitmapDrawable) image.getDrawable()).getBitmap(); Palette.from(bitmap).generate(new Palette.PaletteAsyncListener() { public void onGenerated(Palette palette) { @@ -81,17 +102,17 @@ public void onGenerated(Palette palette) { } }); } - - @Override public void onError() { + @Override + public void onError() { } }); - TextView title = (TextView) findViewById(R.id.title); title.setText(itemTitle); } - @Override public boolean dispatchTouchEvent(MotionEvent motionEvent) { + @Override + public boolean dispatchTouchEvent(MotionEvent motionEvent) { try { return super.dispatchTouchEvent(motionEvent); } catch (NullPointerException e) { @@ -111,17 +132,17 @@ private void initActivityTransitions() { private void applyPalette(Palette palette) { int primaryDark = getResources().getColor(R.color.primary_dark); int primary = getResources().getColor(R.color.primary); - collapsingToolbarLayout.setContentScrimColor(palette.getMutedColor(primary)); - collapsingToolbarLayout.setStatusBarScrimColor(palette.getDarkMutedColor(primaryDark)); - updateBackground((FloatingActionButton) findViewById(R.id.fab), palette); + collapsingToolbar.setContentScrimColor(palette.getMutedColor(primary)); + collapsingToolbar.setStatusBarScrimColor(palette.getDarkMutedColor(primaryDark)); + updateBackground(fab, palette); supportStartPostponedEnterTransition(); } private void updateBackground(FloatingActionButton fab, Palette palette) { int lightVibrantColor = palette.getLightVibrantColor(getResources().getColor(android.R.color.white)); int vibrantColor = palette.getVibrantColor(getResources().getColor(R.color.accent)); - fab.setRippleColor(lightVibrantColor); fab.setBackgroundTintList(ColorStateList.valueOf(vibrantColor)); } + } diff --git a/app/src/main/java/com/antonioleiva/materializeyourapp/MainActivity.java b/app/src/main/java/com/antonioleiva/materializeyourapp/MainActivity.java index f95af87..40beb40 100644 --- a/app/src/main/java/com/antonioleiva/materializeyourapp/MainActivity.java +++ b/app/src/main/java/com/antonioleiva/materializeyourapp/MainActivity.java @@ -16,8 +16,10 @@ package com.antonioleiva.materializeyourapp; -import android.os.Build; import android.os.Bundle; +import android.support.design.widget.AppBarLayout; +import android.support.design.widget.CoordinatorLayout; +import android.support.design.widget.FloatingActionButton; import android.support.design.widget.NavigationView; import android.support.design.widget.Snackbar; import android.support.v4.view.GravityCompat; @@ -25,99 +27,72 @@ import android.support.v7.app.ActionBar; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.GridLayoutManager; +import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.support.v7.widget.Toolbar; +import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.ImageView; +import android.widget.Toast; import com.antonioleiva.materializeyourapp.picasso.CircleTransform; +import com.antonioleiva.materializeyourapp.widgets.GridRecyclerView; import com.squareup.picasso.Picasso; import java.util.ArrayList; import java.util.List; +import butterknife.BindView; +import butterknife.ButterKnife; -public class MainActivity extends AppCompatActivity implements RecyclerViewAdapter.OnItemClickListener { - public static final String AVATAR_URL = "http://lorempixel.com/200/200/people/1/"; +public class MainActivity extends AppCompatActivity { + public static final String AVATAR_URL = "http://lorempixel.com/200/200/people/1/"; private static List items = new ArrayList<>(); - static { - for (int i = 1; i <= 10; i++) { - items.add(new ViewModel("Item " + i, "http://lorempixel.com/500/500/animals/" + i)); - } - } + @BindView(R.id.toolbar) Toolbar toolbar; + @BindView(R.id.appBarLayout) AppBarLayout appBarLayout; + @BindView(R.id.recycler_view) RecyclerView recyclerView; + @BindView(R.id.fab) FloatingActionButton fab; + @BindView(R.id.content) CoordinatorLayout content; + @BindView(R.id.navigation_view) NavigationView navigationView; + @BindView(R.id.drawer_layout) DrawerLayout drawerLayout; + + private GridLayoutManager layoutManager; + private RecyclerViewAdapter adapter; + private ImageView avatar; - private DrawerLayout drawerLayout; - private View content; - private RecyclerView recyclerView; - private NavigationView navigationView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); + ButterKnife.bind(this); - initRecyclerView(); - initFab(); - initToolbar(); - setupDrawerLayout(); - - content = findViewById(R.id.content); + initializeUI(); - final ImageView avatar = (ImageView) navigationView.getHeaderView(0).findViewById(R.id.avatar); + avatar = (ImageView) navigationView.getHeaderView(0).findViewById(R.id.avatar); Picasso.with(this).load(AVATAR_URL).transform(new CircleTransform()).into(avatar); - - if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) { - setRecyclerAdapter(recyclerView); - } - } - - @Override public void onEnterAnimationComplete() { - super.onEnterAnimationComplete(); - setRecyclerAdapter(recyclerView); - recyclerView.scheduleLayoutAnimation(); } - private void initRecyclerView() { - recyclerView = (RecyclerView) findViewById(R.id.recycler); - recyclerView.setLayoutManager(new GridLayoutManager(this, 2)); - - } - - private void setRecyclerAdapter(RecyclerView recyclerView) { - RecyclerViewAdapter adapter = new RecyclerViewAdapter(items); - adapter.setOnItemClickListener(this); - recyclerView.setAdapter(adapter); - } - - private void initFab() { - findViewById(R.id.fab).setOnClickListener(new View.OnClickListener() { - @Override public void onClick(View v) { - Snackbar.make(content, "FAB Clicked", Snackbar.LENGTH_SHORT).show(); - } - }); - } - - private void initToolbar() { - final Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); + private void initializeUI() { setSupportActionBar(toolbar); final ActionBar actionBar = getSupportActionBar(); - if (actionBar != null) { actionBar.setHomeAsUpIndicator(R.drawable.ic_menu_black_24dp); actionBar.setDisplayHomeAsUpEnabled(true); } - } - private void setupDrawerLayout() { - drawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout); + layoutManager = new GridLayoutManager(this, 3, LinearLayoutManager.VERTICAL, false); + recyclerView.setHasFixedSize(true); + recyclerView.setLayoutManager(layoutManager); + bindDataWithRecyclerView(); - navigationView = (NavigationView) findViewById(R.id.navigation_view); navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() { - @Override public boolean onNavigationItemSelected(MenuItem menuItem) { + @Override + public boolean onNavigationItemSelected(MenuItem menuItem) { Snackbar.make(content, menuItem.getTitle() + " pressed", Snackbar.LENGTH_LONG).show(); menuItem.setChecked(true); drawerLayout.closeDrawers(); @@ -126,6 +101,53 @@ private void setupDrawerLayout() { }); } + private void bindDataWithRecyclerView(){ + adapter = new RecyclerViewAdapter(items); + recyclerView.setAdapter(adapter); + recyclerView.scheduleLayoutAnimation(); + adapter.setOnItemClickListener(new RecyclerViewAdapter.OnItemClickListener() { + @Override + public void onItemClick(View view, ViewModel viewModel) { + DetailActivity.navigate(MainActivity.this, view.findViewById(R.id.image), viewModel); + } + }); + } + + @Override + public void onEnterAnimationComplete() { + super.onEnterAnimationComplete(); + } + + @Override + protected void onStart() { + super.onStart(); + loadItems(); + } + + private void loadItems(){ + items.clear(); + int j = 0; + for (int i = 1; i <= 30; i++) { + if(i <= 10) + j = i; + else if(i > 10 && i <= 20){ + j = i - 10; + } + else if(i > 20 && i <= 30){ + j = i - 20; + } + items.add(new ViewModel("Item " + i, "http://lorempixel.com/500/500/animals/" + j)); + } + } + + + + @Override + public boolean onCreateOptionsMenu(Menu menu) { + getMenuInflater().inflate(R.menu.drawer, menu); + return true; + } + @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { @@ -133,11 +155,7 @@ public boolean onOptionsItemSelected(MenuItem item) { drawerLayout.openDrawer(GravityCompat.START); return true; } - return super.onOptionsItemSelected(item); } - @Override public void onItemClick(View view, ViewModel viewModel) { - DetailActivity.navigate(this, view.findViewById(R.id.image), viewModel); - } } diff --git a/app/src/main/java/com/antonioleiva/materializeyourapp/RecyclerViewAdapter.java b/app/src/main/java/com/antonioleiva/materializeyourapp/RecyclerViewAdapter.java index d722e66..358c404 100644 --- a/app/src/main/java/com/antonioleiva/materializeyourapp/RecyclerViewAdapter.java +++ b/app/src/main/java/com/antonioleiva/materializeyourapp/RecyclerViewAdapter.java @@ -28,7 +28,7 @@ import java.util.List; -public class RecyclerViewAdapter extends RecyclerView.Adapter implements View.OnClickListener { +public class RecyclerViewAdapter extends RecyclerView.Adapter{ private List items; private OnItemClickListener onItemClickListener; @@ -41,13 +41,20 @@ public void setOnItemClickListener(OnItemClickListener onItemClickListener) { this.onItemClickListener = onItemClickListener; } - @Override public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { - View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_recycler, parent, false); - v.setOnClickListener(this); + @Override + public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { + final View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_recycler, parent, false); + v.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + onItemClickListener.onItemClick(v, (ViewModel) v.getTag()); + } + }); return new ViewHolder(v); } - @Override public void onBindViewHolder(ViewHolder holder, int position) { + @Override + public void onBindViewHolder(ViewHolder holder, int position) { ViewModel item = items.get(position); holder.text.setText(item.getText()); holder.image.setImageBitmap(null); @@ -55,13 +62,11 @@ public void setOnItemClickListener(OnItemClickListener onItemClickListener) { holder.itemView.setTag(item); } - @Override public int getItemCount() { + @Override + public int getItemCount() { return items.size(); } - @Override public void onClick(final View v) { - onItemClickListener.onItemClick(v, (ViewModel) v.getTag()); - } protected static class ViewHolder extends RecyclerView.ViewHolder { public ImageView image; @@ -75,8 +80,7 @@ public ViewHolder(View itemView) { } public interface OnItemClickListener { - void onItemClick(View view, ViewModel viewModel); - } + } diff --git a/app/src/main/java/com/antonioleiva/materializeyourapp/ViewModel.java b/app/src/main/java/com/antonioleiva/materializeyourapp/ViewModel.java index ab88905..07563da 100644 --- a/app/src/main/java/com/antonioleiva/materializeyourapp/ViewModel.java +++ b/app/src/main/java/com/antonioleiva/materializeyourapp/ViewModel.java @@ -1,19 +1,3 @@ -/* - * Copyright (C) 2015 Antonio Leiva - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - package com.antonioleiva.materializeyourapp; public class ViewModel { diff --git a/app/src/main/java/com/antonioleiva/materializeyourapp/picasso/CircleTransform.java b/app/src/main/java/com/antonioleiva/materializeyourapp/picasso/CircleTransform.java index 597483e..1a19b3a 100644 --- a/app/src/main/java/com/antonioleiva/materializeyourapp/picasso/CircleTransform.java +++ b/app/src/main/java/com/antonioleiva/materializeyourapp/picasso/CircleTransform.java @@ -1,19 +1,3 @@ -/* - * Copyright (C) 2015 Antonio Leiva - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - package com.antonioleiva.materializeyourapp.picasso; import android.graphics.Bitmap; diff --git a/app/src/main/java/com/antonioleiva/materializeyourapp/widgets/GridRecyclerView.java b/app/src/main/java/com/antonioleiva/materializeyourapp/widgets/GridRecyclerView.java index 0e1ab04..465e80d 100644 --- a/app/src/main/java/com/antonioleiva/materializeyourapp/widgets/GridRecyclerView.java +++ b/app/src/main/java/com/antonioleiva/materializeyourapp/widgets/GridRecyclerView.java @@ -48,36 +48,23 @@ public GridRecyclerView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); } - @Override - public void setLayoutManager(LayoutManager layout) { - if (layout instanceof GridLayoutManager) { - super.setLayoutManager(layout); - } else { - throw new ClassCastException("You should only use a GridLayoutManager with GridRecyclerView."); - } - } - @Override protected void attachLayoutAnimationParameters(View child, @NonNull ViewGroup.LayoutParams params, int index, int count) { if (getAdapter() != null && getLayoutManager() instanceof GridLayoutManager) { - GridLayoutAnimationController.AnimationParameters animationParams = - (GridLayoutAnimationController.AnimationParameters) params.layoutAnimationParameters; - + GridLayoutAnimationController.AnimationParameters animationParams = (GridLayoutAnimationController.AnimationParameters) params.layoutAnimationParameters; if (animationParams == null) { animationParams = new GridLayoutAnimationController.AnimationParameters(); params.layoutAnimationParameters = animationParams; } int columns = ((GridLayoutManager) getLayoutManager()).getSpanCount(); - animationParams.count = count; animationParams.index = index; animationParams.columnsCount = columns; animationParams.rowsCount = count / columns; - - final int invertedIndex = count - 1 - index; + int invertedIndex = count - 1 - index; animationParams.column = columns - 1 - (invertedIndex % columns); animationParams.row = animationParams.rowsCount - 1 - invertedIndex / columns; diff --git a/app/src/main/res/anim/grid_layout_animation.xml b/app/src/main/res/anim/grid_layout_animation.xml index ad29ac2..99667a8 100644 --- a/app/src/main/res/anim/grid_layout_animation.xml +++ b/app/src/main/res/anim/grid_layout_animation.xml @@ -1,19 +1,4 @@ - + + \ No newline at end of file diff --git a/app/src/main/res/anim/slide_in_bottom.xml b/app/src/main/res/anim/slide_in_bottom.xml index 5b87007..6b84198 100644 --- a/app/src/main/res/anim/slide_in_bottom.xml +++ b/app/src/main/res/anim/slide_in_bottom.xml @@ -1,20 +1,11 @@ - - \ No newline at end of file + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_detail.xml b/app/src/main/res/layout/activity_detail.xml index 725ad06..06a60a5 100644 --- a/app/src/main/res/layout/activity_detail.xml +++ b/app/src/main/res/layout/activity_detail.xml @@ -25,7 +25,7 @@ @@ -34,18 +34,18 @@ android:layout_width="match_parent" android:layout_height="match_parent" app:layout_scrollFlags="scroll|exitUntilCollapsed" + android:fitsSystemWindows="true" app:contentScrim="?attr/colorPrimary" app:expandedTitleMarginStart="48dp" - app:expandedTitleMarginEnd="64dp" - android:fitsSystemWindows="true"> + app:expandedTitleMarginEnd="64dp"> - + app:layout_collapseMode="pin"/> - + android:layout_height="wrap_content" + android:orientation="vertical" + android:paddingTop="10dp"> @@ -102,7 +102,7 @@ - + diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 0efe124..dea3897 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -1,19 +1,4 @@ - - + + android:fitsSystemWindows="true"> - - + + 9dp 12dp 25dp + 400dp diff --git a/build.gradle b/build.gradle index 3c50c0a..9d366d3 100644 --- a/build.gradle +++ b/build.gradle @@ -21,8 +21,7 @@ buildscript { jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:2.3.0' - + classpath 'com.android.tools.build:gradle:2.3.3' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } @@ -30,18 +29,20 @@ buildscript { allprojects { repositories { + mavenLocal() jcenter() + maven { url "https://maven.google.com" } + maven { url "https://jitpack.io" } } } - ext { // SDK and tools - buildToolsVersion = '25.0.2' - compileSdkVersion = 25 - minSdkVersion = 16 - targetSdkVersion = 25 + buildToolsVersion = '26.0.1' + compileSdkVersion = 26 + minSdkVersion = 19 + targetSdkVersion = 26 // Application dependencies - supportLibraryVersion = '25.3.0' + supportLibraryVersion = '26.0.1' }