diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/HistoryActivity.java b/app/src/mobile/java/com/fongmi/android/tv/ui/activity/HistoryActivity.java index 31f1259ff..1976e7117 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/HistoryActivity.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/activity/HistoryActivity.java @@ -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); diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/KeepActivity.java b/app/src/mobile/java/com/fongmi/android/tv/ui/activity/KeepActivity.java index 1f4cf636e..b74f3d1da 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/KeepActivity.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/activity/KeepActivity.java @@ -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); diff --git a/app/src/mobile/res/drawable/ic_action_delete.xml b/app/src/mobile/res/drawable/ic_action_delete.xml index a1efe1dfd..fe52cfac3 100644 --- a/app/src/mobile/res/drawable/ic_action_delete.xml +++ b/app/src/mobile/res/drawable/ic_action_delete.xml @@ -1,6 +1,6 @@ diff --git a/app/src/mobile/res/drawable/ic_vod_delete.xml b/app/src/mobile/res/drawable/ic_vod_delete.xml new file mode 100644 index 000000000..a1efe1dfd --- /dev/null +++ b/app/src/mobile/res/drawable/ic_vod_delete.xml @@ -0,0 +1,10 @@ + + + diff --git a/app/src/mobile/res/layout/activity_history.xml b/app/src/mobile/res/layout/activity_history.xml index 181c12aa8..2925430d5 100644 --- a/app/src/mobile/res/layout/activity_history.xml +++ b/app/src/mobile/res/layout/activity_history.xml @@ -1,46 +1,31 @@ - + android:background="@color/transparent" + android:elevation="0dp" + app:elevation="0dp" + app:liftOnScrollColor="@color/transparent"> - - - - - + - + + android:paddingBottom="8dp" + tools:listitem="@layout/adapter_vod" /> \ No newline at end of file diff --git a/app/src/mobile/res/layout/activity_keep.xml b/app/src/mobile/res/layout/activity_keep.xml index 950fe46ac..7d392cf73 100644 --- a/app/src/mobile/res/layout/activity_keep.xml +++ b/app/src/mobile/res/layout/activity_keep.xml @@ -1,46 +1,31 @@ - + android:background="@color/transparent" + android:elevation="0dp" + app:elevation="0dp" + app:liftOnScrollColor="@color/transparent"> - - - - - + - + + android:paddingBottom="8dp" + tools:listitem="@layout/adapter_vod" /> \ No newline at end of file diff --git a/app/src/mobile/res/layout/adapter_vod.xml b/app/src/mobile/res/layout/adapter_vod.xml index 3ca7ccb7f..959a15cea 100644 --- a/app/src/mobile/res/layout/adapter_vod.xml +++ b/app/src/mobile/res/layout/adapter_vod.xml @@ -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" /> diff --git a/app/src/mobile/res/menu/menu_history.xml b/app/src/mobile/res/menu/menu_history.xml new file mode 100644 index 000000000..3e321bbed --- /dev/null +++ b/app/src/mobile/res/menu/menu_history.xml @@ -0,0 +1,17 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/mobile/res/menu/menu_keep.xml b/app/src/mobile/res/menu/menu_keep.xml new file mode 100644 index 000000000..3e321bbed --- /dev/null +++ b/app/src/mobile/res/menu/menu_keep.xml @@ -0,0 +1,17 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/mobile/res/values-zh-rCN/strings.xml b/app/src/mobile/res/values-zh-rCN/strings.xml index f9e72c9f9..4418ed82f 100644 --- a/app/src/mobile/res/values-zh-rCN/strings.xml +++ b/app/src/mobile/res/values-zh-rCN/strings.xml @@ -9,6 +9,10 @@ 直播 设置 + + 同步 + 删除 + 推荐 diff --git a/app/src/mobile/res/values-zh-rTW/strings.xml b/app/src/mobile/res/values-zh-rTW/strings.xml index 82c8f6f22..c327d2c95 100644 --- a/app/src/mobile/res/values-zh-rTW/strings.xml +++ b/app/src/mobile/res/values-zh-rTW/strings.xml @@ -9,6 +9,10 @@ 直播 設定 + + 同步 + 刪除 + 推薦 diff --git a/app/src/mobile/res/values/strings.xml b/app/src/mobile/res/values/strings.xml index f74a7fd40..7200b4819 100644 --- a/app/src/mobile/res/values/strings.xml +++ b/app/src/mobile/res/values/strings.xml @@ -9,6 +9,10 @@ Live Setting + + Sync + Delete + Home