Support refresh config

pull/171/head
FongMi 2 years ago
parent 7ca03d8478
commit 726f920ede
  1. 17
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/HomeActivity.java
  2. 16
      app/src/leanback/java/com/fongmi/android/tv/ui/custom/CustomTitleView.java

@ -72,6 +72,7 @@ public class HomeActivity extends BaseActivity implements CustomTitleView.Listen
private HistoryPresenter mPresenter;
private ArrayObjectAdapter mAdapter;
private SiteViewModel mViewModel;
private boolean loading;
private boolean confirm;
private Result mResult;
private Clock mClock;
@ -155,9 +156,11 @@ public class HomeActivity extends BaseActivity implements CustomTitleView.Listen
}
private void initConfig() {
if (isLoading()) return;
WallConfig.get().init();
LiveConfig.get().init();
ApiConfig.get().init().load(getCallback());
setLoading(true);
}
private Callback getCallback() {
@ -201,6 +204,7 @@ public class HomeActivity extends BaseActivity implements CustomTitleView.Listen
}
private void setFocus() {
setLoading(false);
mBinding.recycler.requestFocus();
App.post(() -> mBinding.title.setFocusable(true), 500);
}
@ -279,6 +283,14 @@ public class HomeActivity extends BaseActivity implements CustomTitleView.Listen
App.post(() -> confirm = false, 5000);
}
public boolean isLoading() {
return loading;
}
public void setLoading(boolean loading) {
this.loading = loading;
}
@Override
public void onItemClick(Func item) {
switch (item.getResId()) {
@ -339,6 +351,11 @@ public class HomeActivity extends BaseActivity implements CustomTitleView.Listen
SiteDialog.create(this).show();
}
@Override
public void onRefresh() {
initConfig();
}
@Override
public void setSite(Site item) {
ApiConfig.get().setHome(item);

@ -10,6 +10,7 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.widget.AppCompatTextView;
import com.fongmi.android.tv.App;
import com.fongmi.android.tv.R;
import com.fongmi.android.tv.api.ApiConfig;
import com.fongmi.android.tv.bean.Site;
@ -23,6 +24,7 @@ public class CustomTitleView extends AppCompatTextView {
private Listener listener;
private Animation flicker;
private boolean coolDown;
public CustomTitleView(@NonNull Context context) {
super(context);
@ -39,13 +41,15 @@ public class CustomTitleView extends AppCompatTextView {
}
private boolean hasEvent(KeyEvent event) {
return KeyUtil.isEnterKey(event) || KeyUtil.isLeftKey(event) || KeyUtil.isRightKey(event);
return KeyUtil.isEnterKey(event) || KeyUtil.isLeftKey(event) || KeyUtil.isRightKey(event) || (KeyUtil.isUpKey(event) && !coolDown);
}
@Override
protected void onFocusChanged(boolean focused, int direction, Rect previouslyFocusedRect) {
super.onFocusChanged(focused, direction, previouslyFocusedRect);
App.post(() -> coolDown = false, 500);
if (focused) startAnimation(flicker);
if (focused) coolDown = true;
else clearAnimation();
}
@ -63,10 +67,18 @@ public class CustomTitleView extends AppCompatTextView {
listener.setSite(getSite(true));
} else if (event.getAction() == KeyEvent.ACTION_DOWN && KeyUtil.isRightKey(event)) {
listener.setSite(getSite(false));
} else if (event.getAction() == KeyEvent.ACTION_UP && KeyUtil.isUpKey(event)) {
onKeyUp();
}
return true;
}
private void onKeyUp() {
App.post(() -> coolDown = false, 3000);
listener.onRefresh();
coolDown = true;
}
private Site getSite(boolean next) {
List<Site> items = ApiConfig.get().getSites();
int position = ApiConfig.getHomeIndex();
@ -78,5 +90,7 @@ public class CustomTitleView extends AppCompatTextView {
public interface Listener extends SiteCallback {
void showDialog();
void onRefresh();
}
}

Loading…
Cancel
Save