Add a clock at home

pull/5/head
FongMi 3 years ago
parent dfa9ed18c6
commit 2b014b46e5
  1. 18
      app/src/main/java/com/fongmi/bear/ui/activity/HomeActivity.java
  2. 54
      app/src/main/java/com/fongmi/bear/utils/Clock.java
  3. 12
      app/src/main/res/layout/activity_home.xml

@ -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();
}
}

@ -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();
}
}

@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:keepScreenOn="true">
@ -12,4 +13,15 @@
android:clipToPadding="false"
android:padding="24dp" />
<TextView
android:id="@+id/time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="top|end"
android:layout_margin="24dp"
android:letterSpacing="0.02"
android:textColor="@color/white"
android:textSize="24sp"
tools:text="07/25 09:20:00" />
</FrameLayout>
Loading…
Cancel
Save