Update keep and history ui

pull/594/head
jhengazuki 7 months ago
parent bcaf4bb0d8
commit 613efbaaea
  1. 39
      app/src/mobile/java/com/fongmi/android/tv/ui/activity/HistoryActivity.java
  2. 39
      app/src/mobile/java/com/fongmi/android/tv/ui/activity/KeepActivity.java
  3. 4
      app/src/mobile/res/drawable/ic_action_delete.xml
  4. 10
      app/src/mobile/res/drawable/ic_vod_delete.xml
  5. 50
      app/src/mobile/res/layout/activity_history.xml
  6. 50
      app/src/mobile/res/layout/activity_keep.xml
  7. 2
      app/src/mobile/res/layout/adapter_vod.xml
  8. 17
      app/src/mobile/res/menu/menu_history.xml
  9. 17
      app/src/mobile/res/menu/menu_keep.xml
  10. 4
      app/src/mobile/res/values-zh-rCN/strings.xml
  11. 4
      app/src/mobile/res/values-zh-rTW/strings.xml
  12. 4
      app/src/mobile/res/values/strings.xml

@ -3,8 +3,12 @@ package com.fongmi.android.tv.ui.activity;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.Menu;
import android.view.MenuItem;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.widget.Toolbar;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.viewbinding.ViewBinding;
@ -37,19 +41,19 @@ public class HistoryActivity extends BaseActivity implements HistoryAdapter.OnCl
@Override
protected void initView(Bundle savedInstanceState) {
setSupportActionBar(mBinding.toolbar);
setRecyclerView();
getHistory();
}
@Override
protected void initEvent() {
mBinding.sync.setOnClickListener(this::onSync);
mBinding.delete.setOnClickListener(this::onDelete);
public void setSupportActionBar(@Nullable Toolbar toolbar) {
super.setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
}
private void setRecyclerView() {
mBinding.recycler.setHasFixedSize(true);
mBinding.recycler.getItemAnimator().setChangeDuration(0);
mBinding.recycler.setLayoutManager(new GridLayoutManager(this, Product.getColumn(this)));
mBinding.recycler.setAdapter(mAdapter = new HistoryAdapter(this));
mAdapter.setSize(Product.getSpec(getActivity()));
@ -57,20 +61,17 @@ public class HistoryActivity extends BaseActivity implements HistoryAdapter.OnCl
private void getHistory() {
mAdapter.addAll(History.get());
mBinding.delete.setVisibility(mAdapter.getItemCount() > 0 ? View.VISIBLE : View.GONE);
}
private void onSync(View view) {
private void onSync() {
SyncDialog.create().history().show(this);
}
private void onDelete(View view) {
private void onDelete() {
if (mAdapter.isDelete()) {
new MaterialAlertDialogBuilder(this).setTitle(R.string.dialog_delete_record).setMessage(R.string.dialog_delete_history).setNegativeButton(R.string.dialog_negative, null).setPositiveButton(R.string.dialog_positive, (dialog, which) -> mAdapter.clear()).show();
} else if (mAdapter.getItemCount() > 0) {
mAdapter.setDelete(true);
} else {
mBinding.delete.setVisibility(View.GONE);
}
}
@ -87,9 +88,7 @@ public class HistoryActivity extends BaseActivity implements HistoryAdapter.OnCl
@Override
public void onItemDelete(History item) {
mAdapter.remove(item.delete());
if (mAdapter.getItemCount() > 0) return;
mBinding.delete.setVisibility(View.GONE);
mAdapter.setDelete(false);
if (mAdapter.getItemCount() == 0) mAdapter.setDelete(false);
}
@Override
@ -98,6 +97,20 @@ public class HistoryActivity extends BaseActivity implements HistoryAdapter.OnCl
return true;
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_history, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
if (item.getItemId() == android.R.id.home) onBackInvoked();
else if (item.getItemId() == R.id.delete) onDelete();
else if (item.getItemId() == R.id.sync) onSync();
return super.onOptionsItemSelected(item);
}
@Override
protected void onBackInvoked() {
if (mAdapter.isDelete()) mAdapter.setDelete(false);

@ -3,8 +3,12 @@ package com.fongmi.android.tv.ui.activity;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.Menu;
import android.view.MenuItem;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.widget.Toolbar;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.viewbinding.ViewBinding;
@ -41,19 +45,19 @@ public class KeepActivity extends BaseActivity implements KeepAdapter.OnClickLis
@Override
protected void initView(Bundle savedInstanceState) {
setSupportActionBar(mBinding.toolbar);
setRecyclerView();
getKeep();
}
@Override
protected void initEvent() {
mBinding.sync.setOnClickListener(this::onSync);
mBinding.delete.setOnClickListener(this::onDelete);
public void setSupportActionBar(@Nullable Toolbar toolbar) {
super.setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
}
private void setRecyclerView() {
mBinding.recycler.setHasFixedSize(true);
mBinding.recycler.getItemAnimator().setChangeDuration(0);
mBinding.recycler.setLayoutManager(new GridLayoutManager(this, Product.getColumn(this)));
mBinding.recycler.setAdapter(mAdapter = new KeepAdapter(this));
mAdapter.setSize(Product.getSpec(getActivity()));
@ -61,20 +65,17 @@ public class KeepActivity extends BaseActivity implements KeepAdapter.OnClickLis
private void getKeep() {
mAdapter.addAll(Keep.getVod());
mBinding.delete.setVisibility(mAdapter.getItemCount() > 0 ? View.VISIBLE : View.GONE);
}
private void onSync(View view) {
private void onSync() {
SyncDialog.create().keep().show(this);
}
private void onDelete(View view) {
private void onDelete() {
if (mAdapter.isDelete()) {
new MaterialAlertDialogBuilder(this).setTitle(R.string.dialog_delete_record).setMessage(R.string.dialog_delete_keep).setNegativeButton(R.string.dialog_negative, null).setPositiveButton(R.string.dialog_positive, (dialog, which) -> mAdapter.clear()).show();
} else if (mAdapter.getItemCount() > 0) {
mAdapter.setDelete(true);
} else {
mBinding.delete.setVisibility(View.GONE);
}
}
@ -110,9 +111,7 @@ public class KeepActivity extends BaseActivity implements KeepAdapter.OnClickLis
@Override
public void onItemDelete(Keep item) {
mAdapter.remove(item.delete());
if (mAdapter.getItemCount() > 0) return;
mBinding.delete.setVisibility(View.GONE);
mAdapter.setDelete(false);
if (mAdapter.getItemCount() == 0) mAdapter.setDelete(false);
}
@Override
@ -121,6 +120,20 @@ public class KeepActivity extends BaseActivity implements KeepAdapter.OnClickLis
return true;
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_keep, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
if (item.getItemId() == android.R.id.home) onBackInvoked();
else if (item.getItemId() == R.id.delete) onDelete();
else if (item.getItemId() == R.id.sync) onSync();
return super.onOptionsItemSelected(item);
}
@Override
protected void onBackInvoked() {
if (mAdapter.isDelete()) mAdapter.setDelete(false);

@ -1,6 +1,6 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="48dp"
android:height="48dp"
android:width="24dp"
android:height="24dp"
android:tint="#FFFFFF"
android:viewportWidth="24"
android:viewportHeight="24">

@ -0,0 +1,10 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="48dp"
android:height="48dp"
android:tint="#FFFFFF"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillColor="#FFFFFF"
android:pathData="M16,9v10H8V9h8m-1.5,-6h-5l-1,1H5v2h14V4h-3.5l-1,-1zM18,7H6v12c0,1.1 0.9,2 2,2h8c1.1,0 2,-0.9 2,-2V7z" />
</vector>

@ -1,46 +1,31 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
android:orientation="vertical">
<LinearLayout
<com.google.android.material.appbar.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="16dp"
android:gravity="center_vertical"
android:orientation="horizontal">
android:background="@color/transparent"
android:elevation="0dp"
app:elevation="0dp"
app:liftOnScrollColor="@color/transparent">
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/app_history"
android:textColor="@color/white"
android:textSize="20sp"
android:textStyle="bold" />
<ImageView
android:id="@+id/sync"
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_marginStart="16dp"
android:background="?attr/selectableItemBackgroundBorderless"
android:src="@drawable/ic_action_sync" />
<ImageView
android:id="@+id/delete"
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_marginStart="16dp"
android:background="?attr/selectableItemBackgroundBorderless"
android:src="@drawable/ic_action_delete"
android:visibility="gone"
tools:visibility="visible" />
<com.google.android.material.appbar.MaterialToolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
app:layout_scrollFlags="scroll|enterAlways"
app:menu="@menu/menu_history"
app:navigationIconTint="@android:color/white"
app:title="@string/app_history"
app:titleTextColor="@android:color/white" />
</LinearLayout>
</com.google.android.material.appbar.AppBarLayout>
<FrameLayout
android:layout_width="match_parent"
@ -55,7 +40,8 @@
android:clipToPadding="false"
android:paddingStart="8dp"
android:paddingEnd="8dp"
android:paddingBottom="8dp" />
android:paddingBottom="8dp"
tools:listitem="@layout/adapter_vod" />
</FrameLayout>
</LinearLayout>

@ -1,46 +1,31 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
android:orientation="vertical">
<LinearLayout
<com.google.android.material.appbar.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="16dp"
android:gravity="center_vertical"
android:orientation="horizontal">
android:background="@color/transparent"
android:elevation="0dp"
app:elevation="0dp"
app:liftOnScrollColor="@color/transparent">
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/app_keep"
android:textColor="@color/white"
android:textSize="20sp"
android:textStyle="bold" />
<ImageView
android:id="@+id/sync"
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_marginStart="16dp"
android:background="?attr/selectableItemBackgroundBorderless"
android:src="@drawable/ic_action_sync" />
<ImageView
android:id="@+id/delete"
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_marginStart="16dp"
android:background="?attr/selectableItemBackgroundBorderless"
android:src="@drawable/ic_action_delete"
android:visibility="gone"
tools:visibility="visible" />
<com.google.android.material.appbar.MaterialToolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
app:layout_scrollFlags="scroll|enterAlways"
app:menu="@menu/menu_keep"
app:navigationIconTint="@android:color/white"
app:title="@string/app_keep"
app:titleTextColor="@android:color/white" />
</LinearLayout>
</com.google.android.material.appbar.AppBarLayout>
<FrameLayout
android:layout_width="match_parent"
@ -55,7 +40,8 @@
android:clipToPadding="false"
android:paddingStart="8dp"
android:paddingEnd="8dp"
android:paddingBottom="8dp" />
android:paddingBottom="8dp"
tools:listitem="@layout/adapter_vod" />
</FrameLayout>
</LinearLayout>

@ -24,7 +24,7 @@
android:layout_alignBottom="@+id/name"
android:background="@color/black_50"
android:scaleType="center"
android:src="@drawable/ic_action_delete"
android:src="@drawable/ic_vod_delete"
android:visibility="gone"
app:shapeAppearanceOverlay="@style/Vod.Grid.Large"
tools:visibility="visible" />

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/sync"
android:icon="@drawable/ic_action_sync"
android:title="@string/menu_sync"
app:showAsAction="ifRoom" />
<item
android:id="@+id/delete"
android:icon="@drawable/ic_action_delete"
android:title="@string/menu_delete"
app:showAsAction="always" />
</menu>

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/sync"
android:icon="@drawable/ic_action_sync"
android:title="@string/menu_sync"
app:showAsAction="ifRoom" />
<item
android:id="@+id/delete"
android:icon="@drawable/ic_action_delete"
android:title="@string/menu_delete"
app:showAsAction="always" />
</menu>

@ -9,6 +9,10 @@
<string name="nav_live">直播</string>
<string name="nav_setting">设置</string>
<!-- Menu -->
<string name="menu_sync">同步</string>
<string name="menu_delete">删除</string>
<!-- Vod -->
<string name="vod_home">推荐</string>

@ -9,6 +9,10 @@
<string name="nav_live">直播</string>
<string name="nav_setting">設定</string>
<!-- Menu -->
<string name="menu_sync">同步</string>
<string name="menu_delete">刪除</string>
<!-- Vod -->
<string name="vod_home">推薦</string>

@ -9,6 +9,10 @@
<string name="nav_live">Live</string>
<string name="nav_setting">Setting</string>
<!-- Menu -->
<string name="menu_sync">Sync</string>
<string name="menu_delete">Delete</string>
<!-- Vod -->
<string name="vod_home">Home</string>

Loading…
Cancel
Save