diff --git a/app/src/main/java/com/fongmi/bear/ui/activity/HomeActivity.java b/app/src/main/java/com/fongmi/bear/ui/activity/HomeActivity.java index 9e45c69ed..b1f7df1e0 100644 --- a/app/src/main/java/com/fongmi/bear/ui/activity/HomeActivity.java +++ b/app/src/main/java/com/fongmi/bear/ui/activity/HomeActivity.java @@ -2,12 +2,16 @@ package com.fongmi.bear.ui.activity; import android.app.Activity; import android.content.Intent; +import android.view.View; +import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.leanback.widget.ArrayObjectAdapter; import androidx.leanback.widget.ItemBridgeAdapter; import androidx.leanback.widget.ListRow; +import androidx.leanback.widget.OnChildViewHolderSelectedListener; import androidx.lifecycle.ViewModelProvider; +import androidx.recyclerview.widget.RecyclerView; import androidx.viewbinding.ViewBinding; import com.fongmi.bear.ApiConfig; @@ -23,6 +27,7 @@ import com.fongmi.bear.ui.presenter.FuncPresenter; import com.fongmi.bear.ui.presenter.ProgressPresenter; import com.fongmi.bear.ui.presenter.TitlePresenter; import com.fongmi.bear.ui.presenter.VodPresenter; +import com.fongmi.bear.utils.Clock; import com.fongmi.bear.utils.ResUtil; import java.util.List; @@ -46,6 +51,7 @@ public class HomeActivity extends BaseActivity implements VodPresenter.OnClickLi @Override protected void initView() { + Clock.start(mBinding.time); setRecyclerView(); setViewModel(); setAdapter(); @@ -55,6 +61,12 @@ public class HomeActivity extends BaseActivity implements VodPresenter.OnClickLi @Override protected void initEvent() { mFuncPresenter.setOnClickListener(this::onFuncClick); + mBinding.recycler.addOnChildViewHolderSelectedListener(new OnChildViewHolderSelectedListener() { + @Override + public void onChildViewHolderSelected(@NonNull RecyclerView parent, @Nullable RecyclerView.ViewHolder child, int position, int subposition) { + mBinding.time.setVisibility(position == 1 ? View.VISIBLE : View.GONE); + } + }); } private void setRecyclerView() { @@ -127,4 +139,10 @@ public class HomeActivity extends BaseActivity implements VodPresenter.OnClickLi super.onActivityResult(requestCode, resultCode, data); if (resultCode == RESULT_OK) getVideo(); } + + @Override + protected void onDestroy() { + super.onDestroy(); + Clock.destroy(); + } } \ No newline at end of file diff --git a/app/src/main/java/com/fongmi/bear/utils/Clock.java b/app/src/main/java/com/fongmi/bear/utils/Clock.java new file mode 100644 index 000000000..11723c812 --- /dev/null +++ b/app/src/main/java/com/fongmi/bear/utils/Clock.java @@ -0,0 +1,54 @@ +package com.fongmi.bear.utils; + +import android.os.Handler; +import android.os.Looper; +import android.widget.TextView; + +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.Locale; +import java.util.Timer; +import java.util.TimerTask; + +public class Clock { + + private final SimpleDateFormat formatter; + private final Handler handler; + private Timer timer; + + private static class Loader { + static volatile Clock INSTANCE = new Clock(); + } + + public static Clock get() { + return Loader.INSTANCE; + } + + public Clock() { + this.formatter = new SimpleDateFormat("MM/dd HH:mm:ss", Locale.getDefault()); + this.handler = new Handler(Looper.getMainLooper()); + } + + public static void start(TextView view) { + get().cancel(); + get().run(view); + } + + public static void destroy() { + get().cancel(); + } + + private void run(TextView view) { + timer = new Timer(); + timer.schedule(new TimerTask() { + @Override + public void run() { + handler.post(() -> view.setText(formatter.format(new Date()))); + } + }, 0, 1000); + } + + private void cancel() { + if (timer != null) timer.cancel(); + } +} diff --git a/app/src/main/res/layout/activity_home.xml b/app/src/main/res/layout/activity_home.xml index d9e1d6b25..f9df484e8 100644 --- a/app/src/main/res/layout/activity_home.xml +++ b/app/src/main/res/layout/activity_home.xml @@ -1,5 +1,6 @@ @@ -12,4 +13,15 @@ android:clipToPadding="false" android:padding="24dp" /> + + \ No newline at end of file