diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index a947d5c..28163fc 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -8,6 +8,7 @@ + + + + diff --git a/app/src/main/java/com/streamplayer/ChannelAdapter.java b/app/src/main/java/com/streamplayer/ChannelAdapter.java index 3f348ef..5e18d2e 100644 --- a/app/src/main/java/com/streamplayer/ChannelAdapter.java +++ b/app/src/main/java/com/streamplayer/ChannelAdapter.java @@ -43,6 +43,10 @@ public class ChannelAdapter extends RecyclerView.Adapter { + float scale = hasFocus ? 1.08f : 1f; + v.animate().scaleX(scale).scaleY(scale).setDuration(120).start(); + }); } @Override diff --git a/app/src/main/java/com/streamplayer/MainActivity.java b/app/src/main/java/com/streamplayer/MainActivity.java index a837062..eb902ae 100644 --- a/app/src/main/java/com/streamplayer/MainActivity.java +++ b/app/src/main/java/com/streamplayer/MainActivity.java @@ -15,7 +15,8 @@ public class MainActivity extends AppCompatActivity { setContentView(R.layout.activity_main); RecyclerView recyclerView = findViewById(R.id.channel_grid); - recyclerView.setLayoutManager(new GridLayoutManager(this, 3)); + recyclerView.setLayoutManager(new GridLayoutManager(this, getSpanCount())); + recyclerView.setHasFixedSize(true); ChannelAdapter adapter = new ChannelAdapter( ChannelRepository.getChannels(), channel -> { @@ -25,5 +26,10 @@ public class MainActivity extends AppCompatActivity { startActivity(intent); }); recyclerView.setAdapter(adapter); + recyclerView.post(recyclerView::requestFocus); + } + + private int getSpanCount() { + return getResources().getInteger(R.integer.channel_grid_span); } } diff --git a/app/src/main/res/drawable/banner_streamplayer.xml b/app/src/main/res/drawable/banner_streamplayer.xml new file mode 100644 index 0000000..4fe3dc1 --- /dev/null +++ b/app/src/main/res/drawable/banner_streamplayer.xml @@ -0,0 +1,18 @@ + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/bg_channel_item.xml b/app/src/main/res/drawable/bg_channel_item.xml deleted file mode 100644 index 359e8fd..0000000 --- a/app/src/main/res/drawable/bg_channel_item.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - diff --git a/app/src/main/res/drawable/bg_channel_item_selector.xml b/app/src/main/res/drawable/bg_channel_item_selector.xml new file mode 100644 index 0000000..1635de3 --- /dev/null +++ b/app/src/main/res/drawable/bg_channel_item_selector.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/layout/item_channel.xml b/app/src/main/res/layout/item_channel.xml index a088452..c43f9dc 100644 --- a/app/src/main/res/layout/item_channel.xml +++ b/app/src/main/res/layout/item_channel.xml @@ -3,7 +3,9 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="6dp" - android:background="@drawable/bg_channel_item" + android:background="@drawable/bg_channel_item_selector" + android:focusable="true" + android:focusableInTouchMode="true" android:gravity="center_horizontal" android:orientation="vertical" android:padding="16dp"> diff --git a/app/src/main/res/values-sw720dp/integers.xml b/app/src/main/res/values-sw720dp/integers.xml new file mode 100644 index 0000000..2986b28 --- /dev/null +++ b/app/src/main/res/values-sw720dp/integers.xml @@ -0,0 +1,4 @@ + + + 5 + diff --git a/app/src/main/res/values/integers.xml b/app/src/main/res/values/integers.xml new file mode 100644 index 0000000..0675125 --- /dev/null +++ b/app/src/main/res/values/integers.xml @@ -0,0 +1,4 @@ + + + 3 +