Skip to content

Commit

Permalink
Merge pull request FongMi#351 from okcaptain/dev
Browse files Browse the repository at this point in the history
Dev
  • Loading branch information
okcaptain authored Mar 12, 2024
2 parents 007b7d8 + 88960b3 commit 8cf0bc9
Show file tree
Hide file tree
Showing 15 changed files with 279 additions and 123 deletions.
2 changes: 1 addition & 1 deletion app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ android {
minSdk 21
targetSdk 28
versionCode 230
versionName "2.3.0"
versionName "0312"
javaCompileOptions {
annotationProcessorOptions {
arguments = ["room.schemaLocation": "$projectDir/schemas".toString()]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -273,8 +273,7 @@ private boolean hasSettingButton() {
@Override
public void onItemClick(Class item) {
if (mBinding.pager.getCurrentItem() == 0) {
if (!hasSettingButton()) MenuDialog.create(this).show();
else SiteDialog.create(this).show();
SiteDialog.create(this).show();
} else {
updateFilter(item);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -327,4 +327,10 @@ private boolean onBackupAuto(View view) {
mBinding.backupText.setText(AppDatabase.getDate());
return true;
}

@Override
protected void onDestroy() {
super.onDestroy();
RefreshEvent.history();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
import com.fongmi.android.tv.event.RefreshEvent;
import com.fongmi.android.tv.ui.base.BaseActivity;
import com.fongmi.android.tv.ui.dialog.ButtonsDialog;
import com.fongmi.android.tv.ui.dialog.DisplayDialog;
import com.fongmi.android.tv.utils.ResUtil;

import java.util.Locale;
Expand Down Expand Up @@ -46,10 +47,6 @@ protected void initView() {
mBinding.qualityText.setText((quality = ResUtil.getStringArray(R.array.select_quality))[Setting.getQuality()]);
mBinding.sizeText.setText((size = ResUtil.getStringArray(R.array.select_size))[Setting.getSize()]);
mBinding.episodeText.setText((episode = ResUtil.getStringArray(R.array.select_episode))[Setting.getEpisode()]);
mBinding.displayTimeText.setText(getSwitch(Setting.isDisplayTime()));
mBinding.displayNetspeedText.setText(getSwitch(Setting.isDisplaySpeed()));
mBinding.displayDurationText.setText(getSwitch(Setting.isDisplayDuration()));
mBinding.displayMiniProgressText.setText(getSwitch(Setting.isDisplayMiniProgress()));
mBinding.speedText.setText(getSpeedText());
mBinding.fullscreenMenuKeyText.setText((fullscreenMenuKey = ResUtil.getStringArray(R.array.select_fullscreen_menu_key))[Setting.getFullscreenMenuKey()]);
mBinding.homeSiteLockText.setText(getSwitch(Setting.isHomeSiteLock()));
Expand All @@ -58,17 +55,15 @@ protected void initView() {
mBinding.homeMenuKeyText.setText((homeMenuKey = ResUtil.getStringArray(R.array.select_home_menu_key))[Setting.getHomeMenuKey()]);
mBinding.aggregatedSearchText.setText(getSwitch(Setting.isAggregatedSearch()));
mBinding.homeUIText.setText((homeUI = ResUtil.getStringArray(R.array.select_home_ui))[Setting.getHomeUI()]);
mBinding.homeHistoryText.setText(getSwitch(Setting.isHomeHistory()));
}

@Override
protected void initEvent() {
mBinding.quality.setOnClickListener(this::setQuality);
mBinding.size.setOnClickListener(this::setSize);
mBinding.episode.setOnClickListener(this::setEpisode);
mBinding.displayTime.setOnClickListener(this::setDisplayTime);
mBinding.displayNetspeed.setOnClickListener(this::setDisplaySpeed);
mBinding.displayDuration.setOnClickListener(this::setDisplayDuration);
mBinding.displayMiniProgress.setOnClickListener(this::setDisplayMiniProgress);
mBinding.display.setOnClickListener(this::onDisplay);
mBinding.speed.setOnClickListener(this::setSpeed);
mBinding.speed.setOnLongClickListener(this::resetSpeed);
mBinding.fullscreenMenuKey.setOnClickListener(this::setFullscreenMenuKey);
Expand All @@ -78,7 +73,8 @@ protected void initEvent() {
mBinding.homeMenuKey.setOnClickListener(this::setHomeMenuKey);
mBinding.aggregatedSearch.setOnClickListener(this::setAggregatedSearch);
mBinding.homeUI.setOnClickListener(this::setHomeUI);
mBinding.homeButtons.setOnClickListener(this::setHomeButtons);
mBinding.homeButtons.setOnClickListener(this::onHomeButtons);
mBinding.homeHistory.setOnClickListener(this::setHomeHistory);
}

private void setQuality(View view) {
Expand All @@ -101,24 +97,8 @@ private void setEpisode(View view) {
mBinding.episodeText.setText(episode[index]);
}

private void setDisplayTime(View view) {
Setting.putDisplayTime(!Setting.isDisplayTime());
mBinding.displayTimeText.setText(getSwitch(Setting.isDisplayTime()));
}

private void setDisplaySpeed(View view) {
Setting.putDisplaySpeed(!Setting.isDisplaySpeed());
mBinding.displayNetspeedText.setText(getSwitch(Setting.isDisplaySpeed()));
}

private void setDisplayDuration(View view) {
Setting.putDisplayDuration(!Setting.isDisplayDuration());
mBinding.displayDurationText.setText(getSwitch(Setting.isDisplayDuration()));
}

private void setDisplayMiniProgress(View view) {
Setting.putDisplayMiniProgress(!Setting.isDisplayMiniProgress());
mBinding.displayMiniProgressText.setText(getSwitch(Setting.isDisplayMiniProgress()));
private void onDisplay(View view) {
DisplayDialog.create(this).show();
}

private String getSpeedText() {
Expand Down Expand Up @@ -178,8 +158,13 @@ private void setHomeUI(View view) {
mBinding.homeUIText.setText(homeUI[index]);
}

private void setHomeButtons(View view) {
private void onHomeButtons(View view) {
ButtonsDialog.create(this).show();
}

private void setHomeHistory(View view) {
Setting.putHomeHistory(!Setting.isHomeHistory());
mBinding.homeHistoryText.setText(getSwitch(Setting.isHomeHistory()));
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
package com.fongmi.android.tv.ui.adapter;

import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.ViewGroup;

import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;


import com.fongmi.android.tv.R;
import com.fongmi.android.tv.Setting;
import com.fongmi.android.tv.databinding.AdapterDisplayBinding;
import com.fongmi.android.tv.utils.ResUtil;

import java.util.ArrayList;
import java.util.List;

public class DisplayAdapter extends RecyclerView.Adapter<DisplayAdapter.ViewHolder> {

private List<String> mItems;

public DisplayAdapter() {
mItems = new ArrayList<>();
mItems.add(ResUtil.getString(R.string.play_time));
mItems.add(ResUtil.getString(R.string.play_netspeed));
mItems.add(ResUtil.getString(R.string.play_duration));
mItems.add(ResUtil.getString(R.string.play_mini_progress));
}

@Override
public int getItemCount() {
return mItems.size();
}

@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
return new ViewHolder(AdapterDisplayBinding.inflate(LayoutInflater.from(parent.getContext()), parent, false));
}

@Override
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
String name = mItems.get(position);
holder.binding.text.setText(name);
holder.binding.check.setChecked(getChecked(position));
holder.binding.select.setOnLongClickListener(v -> onItemLongClick(position));
holder.binding.select.setOnClickListener(v -> onItemClick(position));
holder.binding.text.setGravity(Gravity.CENTER);
}

private boolean getChecked(int position) {
if (position == 0) return Setting.isDisplayTime();
else if (position == 1) return Setting.isDisplaySpeed();
else if (position == 2) return Setting.isDisplayDuration();
else if (position == 3) return Setting.isDisplayMiniProgress();
return false;
}

private void onItemClick(int position) {
if (position == 0) Setting.putDisplayTime(!Setting.isDisplayTime());
else if (position == 1) Setting.putDisplaySpeed(!Setting.isDisplaySpeed());
else if (position == 2) Setting.putDisplayDuration(!Setting.isDisplayDuration());
else if (position == 3) Setting.putDisplayMiniProgress(!Setting.isDisplayMiniProgress());
notifyItemRangeChanged(0, getItemCount());
}

private boolean onItemLongClick(int position) {
boolean checked = false;
if (position == 0) checked = Setting.isDisplayTime();
else if (position == 1) checked = Setting.isDisplaySpeed();
else if (position == 2) checked = Setting.isDisplayDuration();
else if (position == 3) checked = Setting.isDisplayMiniProgress();
Setting.putDisplayTime(!checked);
Setting.putDisplaySpeed(!checked);
Setting.putDisplayDuration(!checked);
Setting.putDisplayMiniProgress(!checked);
notifyItemRangeChanged(0, getItemCount());
return true;
}


static class ViewHolder extends RecyclerView.ViewHolder {

private final AdapterDisplayBinding binding;

ViewHolder(@NonNull AdapterDisplayBinding binding) {
super(binding.getRoot());
this.binding = binding;
}
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ public void setListener(Listener listener) {
}

private boolean hasEvent(KeyEvent event) {
if (Setting.isHomeSiteLock()) return false;
return KeyUtil.isEnterKey(event) || KeyUtil.isLeftKey(event) || KeyUtil.isRightKey(event) || (KeyUtil.isUpKey(event) && !coolDown);
}

Expand All @@ -54,7 +55,6 @@ protected void onFocusChanged(boolean focused, int direction, Rect previouslyFoc

@Override
public boolean dispatchKeyEvent(KeyEvent event) {
if (Setting.isHomeSiteLock()) return false;
if (VodConfig.get().getSites().isEmpty()) return false;
if (hasEvent(event)) return onKeyDown(event);
else return super.dispatchKeyEvent(event);
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
package com.fongmi.android.tv.ui.dialog;

import android.app.Activity;
import android.view.LayoutInflater;
import android.view.WindowManager;

import androidx.appcompat.app.AlertDialog;
import androidx.recyclerview.widget.GridLayoutManager;

import com.fongmi.android.tv.databinding.DialogDisplayBinding;
import com.fongmi.android.tv.ui.adapter.DisplayAdapter;
import com.fongmi.android.tv.ui.custom.SpaceItemDecoration;
import com.fongmi.android.tv.utils.ResUtil;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;

public class DisplayDialog {
private final DialogDisplayBinding binding;
private final DisplayAdapter adapter;
private final AlertDialog dialog;


public static DisplayDialog create(Activity activity) {
return new DisplayDialog(activity);
}

public DisplayDialog(Activity activity) {
this.adapter = new DisplayAdapter();
this.binding = DialogDisplayBinding.inflate(LayoutInflater.from(activity));
this.dialog = new MaterialAlertDialogBuilder(activity).setView(binding.getRoot()).create();
}

public void show() {
initView();
initEvent();
}

private void initView() {
setRecyclerView();
setDialog();
}

private void initEvent() {

}

private void setRecyclerView() {
binding.recycler.setAdapter(adapter);
binding.recycler.setHasFixedSize(true);
binding.recycler.setItemAnimator(null);
binding.recycler.addItemDecoration(new SpaceItemDecoration(1, 16));
binding.recycler.setLayoutManager(new GridLayoutManager(dialog.getContext(), 1));
binding.recycler.post(() -> binding.recycler.scrollToPosition(0));

}

private void setDialog() {
if (adapter.getItemCount() == 0) return;
WindowManager.LayoutParams params = dialog.getWindow().getAttributes();
params.width = (int) (ResUtil.getScreenWidth() * 0.4f);
dialog.getWindow().setAttributes(params);
dialog.getWindow().setDimAmount(0);
dialog.show();
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,7 @@ private void setRecyclerView() {
private void setAdapter() {
ListRow funcRow = getFuncRow();
if (funcRow != null) mAdapter.add(funcRow);
mAdapter.add(R.string.home_history);
if (Setting.isHomeHistory()) mAdapter.add(R.string.home_history);
mAdapter.add(R.string.home_recommend);
mHistoryAdapter = new ArrayObjectAdapter(mPresenter = new HistoryPresenter(this));
homeUI = Setting.getHomeUI();
Expand Down Expand Up @@ -161,9 +161,21 @@ public void getHistory() {
}

public void getHistory(boolean renew) {
List<History> items = History.get();
int historyIndex = getHistoryIndex();
int recommendIndex = getRecommendIndex();
if (historyIndex == -1) {
if (!Setting.isHomeHistory()) return;
int historyStringIndex = recommendIndex - 1;
historyStringIndex = historyStringIndex < 0 ? 0 : historyStringIndex;
mAdapter.add(historyStringIndex, R.string.home_history);
}
if (!Setting.isHomeHistory()) {
mAdapter.removeItems(historyIndex - 1, 2);
return;
}
historyIndex = getHistoryIndex();
recommendIndex = getRecommendIndex();
List<History> items = History.get();
boolean exist = recommendIndex - historyIndex == 2;
if (renew) mHistoryAdapter = new ArrayObjectAdapter(mPresenter = new HistoryPresenter(this));
if ((items.isEmpty() && exist) || (renew && exist)) mAdapter.removeItems(historyIndex, 1);
Expand Down
Loading

0 comments on commit 8cf0bc9

Please sign in to comment.