-
Notifications
You must be signed in to change notification settings - Fork 75
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[Palette list] Adapt the palette list to the kids/adult falvors.
The PaletteListWrapper describes the common contract of the wrapper. The FlavorPaletteListWrapper defines the specific behaviors. For the kids flavor, the palettes are presented in a grid. Only a preview of the palette is presented. For the adult flavor, the palettes are presented in a vertical list. The name of the palette is displayed next to the preview.
- Loading branch information
1 parent
c167660
commit aacfc8c
Showing
8 changed files
with
336 additions
and
102 deletions.
There are no files selected for viewing
101 changes: 101 additions & 0 deletions
101
...pp/src/adult/java/fr/tvbarthel/apps/cameracolorpicker/views/FlavorPaletteListWrapper.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,101 @@ | ||
package fr.tvbarthel.apps.cameracolorpicker.views; | ||
|
||
import android.support.v7.widget.LinearLayoutManager; | ||
import android.support.v7.widget.RecyclerView; | ||
import android.view.LayoutInflater; | ||
import android.view.View; | ||
import android.view.ViewGroup; | ||
import android.widget.TextView; | ||
|
||
import fr.tvbarthel.apps.cameracolorpicker.R; | ||
import fr.tvbarthel.apps.cameracolorpicker.data.Palette; | ||
import fr.tvbarthel.apps.cameracolorpicker.wrappers.PaletteListWrapper; | ||
|
||
/** | ||
* A flavor {@link PaletteListWrapper}. | ||
*/ | ||
public class FlavorPaletteListWrapper extends PaletteListWrapper { | ||
|
||
/** | ||
* Create a {@link FlavorPaletteListWrapper}. | ||
* | ||
* @param recyclerView the {@link RecyclerView} that will be wrapped. | ||
* @param listener the {@link fr.tvbarthel.apps.cameracolorpicker.wrappers.PaletteListWrapper.PaletteListWrapperListener} that will be notified of the clicks. | ||
* @return a newly created {@link FlavorPaletteListWrapper}. | ||
*/ | ||
public static FlavorPaletteListWrapper create(RecyclerView recyclerView, PaletteListWrapperListener listener) { | ||
final PaletteAdapter paletteAdapter = new PaletteAdapter(listener); | ||
final LinearLayoutManager linearLayoutManager = new LinearLayoutManager(recyclerView.getContext()); | ||
return new FlavorPaletteListWrapper(recyclerView, listener, paletteAdapter, linearLayoutManager); | ||
} | ||
|
||
protected FlavorPaletteListWrapper(RecyclerView recyclerView, PaletteListWrapperListener listener, Adapter adapter, RecyclerView.LayoutManager layoutManager) { | ||
super(recyclerView, listener, adapter, layoutManager); | ||
} | ||
|
||
/** | ||
* A {@link fr.tvbarthel.apps.cameracolorpicker.wrappers.PaletteListWrapper.Adapter} | ||
* of {@link PaletteHolder}. | ||
* <p/> | ||
* It adapts {@link Palette} into {@link fr.tvbarthel.apps.cameracolorpicker.R.layout#row_palette} | ||
*/ | ||
private static class PaletteAdapter extends PaletteListWrapper.Adapter<PaletteHolder> { | ||
|
||
protected PaletteAdapter(PaletteListWrapperListener listener) { | ||
super(listener); | ||
} | ||
|
||
@Override | ||
public PaletteHolder onCreateViewHolder(ViewGroup parent, int viewType) { | ||
final View view = LayoutInflater.from(parent.getContext()) | ||
.inflate(R.layout.row_palette, parent, false); | ||
return new PaletteHolder(view, mListener); | ||
} | ||
|
||
@Override | ||
public void onBindViewHolder(PaletteHolder holder, int position) { | ||
final Palette palette = get(position); | ||
holder.bind(palette); | ||
} | ||
|
||
} | ||
|
||
/** | ||
* A {@link android.support.v7.widget.RecyclerView.ViewHolder} used by {@link PaletteAdapter}. | ||
*/ | ||
private static class PaletteHolder extends RecyclerView.ViewHolder implements View.OnClickListener { | ||
|
||
private final View mUnderlyingView; | ||
private final PaletteListWrapperListener mListener; | ||
private final PaletteView mPaletteRoundedThumbnail; | ||
private final TextView mPaletteName; | ||
private Palette mPalette; | ||
|
||
public PaletteHolder(View view, PaletteListWrapperListener listener) { | ||
super(view); | ||
mUnderlyingView = view; | ||
mListener = listener; | ||
mPaletteRoundedThumbnail = (PaletteView) view.findViewById(R.id.row_color_palette_thumbnail); | ||
mPaletteName = (TextView) view.findViewById(R.id.row_color_palette_name); | ||
|
||
view.setOnClickListener(this); | ||
} | ||
|
||
public void bind(Palette palette) { | ||
mPalette = palette; | ||
mPaletteRoundedThumbnail.setPalette(palette); | ||
mPaletteName.setText(palette.getName()); | ||
} | ||
|
||
@Override | ||
public void onClick(View v) { | ||
if (v != mUnderlyingView) { | ||
throw new IllegalArgumentException("Unsupported view clicked. Found: " + v); | ||
} | ||
|
||
if (mPalette != null) { | ||
mListener.onPaletteClicked(mPalette, mPaletteRoundedThumbnail); | ||
} | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
98 changes: 98 additions & 0 deletions
98
...app/src/kids/java/fr/tvbarthel/apps/cameracolorpicker/views/FlavorPaletteListWrapper.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,98 @@ | ||
package fr.tvbarthel.apps.cameracolorpicker.views; | ||
|
||
import android.support.v7.widget.GridLayoutManager; | ||
import android.support.v7.widget.LinearLayoutManager; | ||
import android.support.v7.widget.RecyclerView; | ||
import android.view.LayoutInflater; | ||
import android.view.View; | ||
import android.view.ViewGroup; | ||
|
||
import fr.tvbarthel.apps.cameracolorpicker.R; | ||
import fr.tvbarthel.apps.cameracolorpicker.data.Palette; | ||
import fr.tvbarthel.apps.cameracolorpicker.wrappers.PaletteListWrapper; | ||
|
||
/** | ||
* A flavor {@link PaletteListWrapper}. | ||
*/ | ||
public class FlavorPaletteListWrapper extends PaletteListWrapper { | ||
|
||
/** | ||
* Create a {@link FlavorPaletteListWrapper}. | ||
* | ||
* @param recyclerView the {@link RecyclerView} that will be wrapped. | ||
* @param listener the {@link PaletteListWrapperListener} that will be notified of the clicks. | ||
* @return a newly created {@link FlavorPaletteListWrapper}. | ||
*/ | ||
public static FlavorPaletteListWrapper create(RecyclerView recyclerView, PaletteListWrapperListener listener) { | ||
final PaletteAdapter paletteAdapter = new PaletteAdapter(listener); | ||
final LinearLayoutManager linearLayoutManager = new GridLayoutManager(recyclerView.getContext(), 5); | ||
return new FlavorPaletteListWrapper(recyclerView, listener, paletteAdapter, linearLayoutManager); | ||
} | ||
|
||
protected FlavorPaletteListWrapper(RecyclerView recyclerView, PaletteListWrapperListener listener, Adapter adapter, RecyclerView.LayoutManager layoutManager) { | ||
super(recyclerView, listener, adapter, layoutManager); | ||
} | ||
|
||
/** | ||
* A {@link Adapter} | ||
* of {@link PaletteHolder}. | ||
* <p/> | ||
* It adapts {@link Palette} into {@link R.layout#row_palette} | ||
*/ | ||
private static class PaletteAdapter extends Adapter<PaletteHolder> { | ||
|
||
protected PaletteAdapter(PaletteListWrapperListener listener) { | ||
super(listener); | ||
} | ||
|
||
@Override | ||
public PaletteHolder onCreateViewHolder(ViewGroup parent, int viewType) { | ||
final View view = LayoutInflater.from(parent.getContext()) | ||
.inflate(R.layout.row_palette, parent, false); | ||
return new PaletteHolder(view, mListener); | ||
} | ||
|
||
@Override | ||
public void onBindViewHolder(PaletteHolder holder, int position) { | ||
final Palette palette = get(position); | ||
holder.bind(palette); | ||
} | ||
|
||
} | ||
|
||
/** | ||
* A {@link RecyclerView.ViewHolder} used by {@link PaletteAdapter}. | ||
*/ | ||
private static class PaletteHolder extends RecyclerView.ViewHolder implements View.OnClickListener { | ||
|
||
private final View mUnderlyingView; | ||
private final PaletteListWrapperListener mListener; | ||
private final PaletteView mPaletteRoundedThumbnail; | ||
private Palette mPalette; | ||
|
||
public PaletteHolder(View view, PaletteListWrapperListener listener) { | ||
super(view); | ||
mUnderlyingView = view; | ||
mListener = listener; | ||
mPaletteRoundedThumbnail = (PaletteView) view.findViewById(R.id.row_color_palette_thumbnail); | ||
|
||
view.setOnClickListener(this); | ||
} | ||
|
||
public void bind(Palette palette) { | ||
mPalette = palette; | ||
mPaletteRoundedThumbnail.setPalette(palette); | ||
} | ||
|
||
@Override | ||
public void onClick(View v) { | ||
if (v != mUnderlyingView) { | ||
throw new IllegalArgumentException("Unsupported view clicked. Found: " + v); | ||
} | ||
|
||
if (mPalette != null) { | ||
mListener.onPaletteClicked(mPalette, mPaletteRoundedThumbnail); | ||
} | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
<?xml version="1.0" encoding="utf-8"?> | ||
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" | ||
android:layout_width="match_parent" | ||
android:layout_height="96dp" | ||
android:background="?selectableItemBackground"> | ||
|
||
<fr.tvbarthel.apps.cameracolorpicker.views.PaletteView | ||
android:id="@+id/row_color_palette_thumbnail" | ||
android:layout_width="@dimen/row_color_palette_thumbnail_size" | ||
android:layout_height="@dimen/row_color_palette_thumbnail_size" | ||
android:layout_gravity="center" | ||
android:layout_margin="16dp" /> | ||
|
||
</FrameLayout> |
74 changes: 0 additions & 74 deletions
74
...Picker/app/src/main/java/fr/tvbarthel/apps/cameracolorpicker/adapters/PaletteAdapter.java
This file was deleted.
Oops, something went wrong.
Oops, something went wrong.