[mobile] fix bug

pull/123/head
FongMi 3 years ago
parent 9f2ac9b89a
commit e64d65b5c9
  1. 5
      app/src/mobile/java/com/fongmi/android/tv/Product.java
  2. 4
      app/src/mobile/java/com/fongmi/android/tv/ui/activity/CollectActivity.java
  3. 4
      app/src/mobile/java/com/fongmi/android/tv/ui/activity/DetailActivity.java
  4. 7
      app/src/mobile/java/com/fongmi/android/tv/ui/activity/MainActivity.java
  5. 4
      app/src/mobile/java/com/fongmi/android/tv/ui/adapter/TypeAdapter.java
  6. 78
      app/src/mobile/java/com/fongmi/android/tv/ui/base/BaseActivity.java
  7. 53
      app/src/mobile/java/com/fongmi/android/tv/ui/base/BaseFragment.java
  8. 2
      app/src/mobile/java/com/fongmi/android/tv/ui/custom/FragmentStateManager.java
  9. 2
      app/src/mobile/java/com/fongmi/android/tv/ui/fragment/SettingFragment.java
  10. 3
      app/src/mobile/java/com/fongmi/android/tv/ui/fragment/VodFragment.java
  11. 2
      app/src/mobile/java/com/fongmi/android/tv/ui/fragment/child/HomeFragment.java
  12. 2
      app/src/mobile/java/com/fongmi/android/tv/ui/fragment/child/TypeFragment.java

@ -1,17 +1,12 @@
package com.fongmi.android.tv;
import android.content.Context;
import android.content.res.Resources;
import com.fongmi.android.tv.utils.Prefers;
import com.fongmi.android.tv.utils.ResUtil;
public class Product {
public static Resources hackResources(Resources resources) {
return resources;
}
public static int getColumn() {
return Math.abs(Prefers.getSize() - 5);
}

@ -2,6 +2,7 @@ package com.fongmi.android.tv.ui.activity;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextUtils;
import android.view.View;
@ -32,6 +33,7 @@ import com.fongmi.android.tv.ui.adapter.CollectAdapter;
import com.fongmi.android.tv.ui.adapter.RecordAdapter;
import com.fongmi.android.tv.ui.adapter.VodAdapter;
import com.fongmi.android.tv.ui.adapter.WordAdapter;
import com.fongmi.android.tv.ui.base.BaseActivity;
import com.fongmi.android.tv.ui.custom.CustomListener;
import com.fongmi.android.tv.ui.custom.ViewType;
import com.fongmi.android.tv.ui.custom.dialog.SiteDialog;
@ -84,7 +86,7 @@ public class CollectActivity extends BaseActivity implements SiteCallback, WordA
}
@Override
protected void initView() {
protected void initView(Bundle savedInstanceState) {
mSites = new ArrayList<>();
setRecyclerView();
setLayoutSize();

@ -6,6 +6,7 @@ import android.content.Intent;
import android.content.pm.ActivityInfo;
import android.content.res.Configuration;
import android.graphics.Rect;
import android.os.Bundle;
import android.text.Html;
import android.text.Layout;
import android.util.Rational;
@ -45,6 +46,7 @@ import com.fongmi.android.tv.player.Players;
import com.fongmi.android.tv.ui.adapter.EpisodeAdapter;
import com.fongmi.android.tv.ui.adapter.FlagAdapter;
import com.fongmi.android.tv.ui.adapter.ParseAdapter;
import com.fongmi.android.tv.ui.base.BaseActivity;
import com.fongmi.android.tv.ui.custom.CustomKeyDownVod;
import com.fongmi.android.tv.ui.custom.SpaceItemDecoration;
import com.fongmi.android.tv.ui.custom.dialog.TrackDialog;
@ -184,7 +186,7 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis
}
@Override
protected void initView() {
protected void initView(Bundle savedInstanceState) {
mKeyDown = CustomKeyDownVod.create(this);
mFrameParams = mBinding.video.getLayoutParams();
mPlayers = new Players().init();

@ -18,6 +18,7 @@ import com.fongmi.android.tv.databinding.ActivityMainBinding;
import com.fongmi.android.tv.event.RefreshEvent;
import com.fongmi.android.tv.net.Callback;
import com.fongmi.android.tv.server.Server;
import com.fongmi.android.tv.ui.base.BaseActivity;
import com.fongmi.android.tv.ui.custom.FragmentStateManager;
import com.fongmi.android.tv.ui.fragment.SettingFragment;
import com.fongmi.android.tv.ui.fragment.VodFragment;
@ -64,11 +65,7 @@ public class MainActivity extends BaseActivity implements NavigationBarView.OnIt
mManager = new FragmentStateManager(mBinding.container, getSupportFragmentManager()) {
@Override
public Fragment getItem(int position) {
if (position == 0) {
return VodFragment.newInstance();
} else {
return SettingFragment.newInstance();
}
return position == 0 ? VodFragment.newInstance() : SettingFragment.newInstance();
}
};
if (savedInstanceState == null) mManager.change(0);

@ -72,6 +72,10 @@ public class TypeAdapter extends RecyclerView.Adapter<TypeAdapter.ViewHolder> {
return mItems.get(position);
}
public boolean hasType() {
return getItemCount() > 1;
}
@Override
public int getItemCount() {
return mItems.size();

@ -0,0 +1,78 @@
package com.fongmi.android.tv.ui.base;
import android.app.Activity;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.view.View;
import androidx.appcompat.app.AppCompatActivity;
import androidx.viewbinding.ViewBinding;
import com.fongmi.android.tv.R;
import com.fongmi.android.tv.api.WallConfig;
import com.fongmi.android.tv.event.RefreshEvent;
import com.fongmi.android.tv.utils.FileUtil;
import com.fongmi.android.tv.utils.Prefers;
import com.fongmi.android.tv.utils.ResUtil;
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
import org.greenrobot.eventbus.ThreadMode;
import java.io.File;
public abstract class BaseActivity extends AppCompatActivity {
protected abstract ViewBinding getBinding();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(getBinding().getRoot());
EventBus.getDefault().register(this);
setWall();
initView(savedInstanceState);
initEvent();
}
protected Activity getActivity() {
return this;
}
protected void initView(Bundle savedInstanceState) {
}
protected void initEvent() {
}
protected boolean isVisible(View view) {
return view.getVisibility() == View.VISIBLE;
}
protected boolean isGone(View view) {
return view.getVisibility() == View.GONE;
}
private void setWall() {
try {
File file = FileUtil.getWall(Prefers.getWall());
if (file.exists() && file.length() > 0) getWindow().setBackgroundDrawable(WallConfig.drawable(Drawable.createFromPath(file.getPath())));
else getWindow().setBackgroundDrawableResource(ResUtil.getDrawable(file.getName()));
} catch (Exception e) {
getWindow().setBackgroundDrawableResource(R.drawable.wallpaper_1);
}
}
@Subscribe(threadMode = ThreadMode.MAIN)
public void onRefreshEvent(RefreshEvent event) {
if (event.getType() != RefreshEvent.Type.WALL) return;
WallConfig.get().setDrawable(null);
setWall();
}
@Override
protected void onDestroy() {
super.onDestroy();
EventBus.getDefault().unregister(this);
}
}

@ -0,0 +1,53 @@
package com.fongmi.android.tv.ui.base;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import androidx.viewbinding.ViewBinding;
public abstract class BaseFragment extends Fragment {
protected abstract ViewBinding getBinding(@NonNull LayoutInflater inflater, @Nullable ViewGroup container);
private boolean init;
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
return getBinding(inflater, container).getRoot();
}
protected void initView() {
}
protected void initEvent() {
}
public boolean canBack() {
return true;
}
private void resume() {
if (init) return;
initView();
initEvent();
init = true;
}
@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
super.setUserVisibleHint(isVisibleToUser);
if (isVisibleToUser) if (isResumed()) resume();
}
@Override
public void onResume() {
super.onResume();
if (getUserVisibleHint()) resume();
}
}

@ -6,7 +6,7 @@ import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentTransaction;
import com.fongmi.android.tv.ui.activity.BaseFragment;
import com.fongmi.android.tv.ui.base.BaseFragment;
public abstract class FragmentStateManager {

@ -23,7 +23,7 @@ import com.fongmi.android.tv.impl.ConfigCallback;
import com.fongmi.android.tv.impl.LiveCallback;
import com.fongmi.android.tv.impl.SiteCallback;
import com.fongmi.android.tv.net.Callback;
import com.fongmi.android.tv.ui.activity.BaseFragment;
import com.fongmi.android.tv.ui.base.BaseFragment;
import com.fongmi.android.tv.ui.custom.dialog.ConfigDialog;
import com.fongmi.android.tv.ui.custom.dialog.HistoryDialog;
import com.fongmi.android.tv.ui.custom.dialog.LiveDialog;

@ -21,9 +21,9 @@ import com.fongmi.android.tv.databinding.FragmentVodBinding;
import com.fongmi.android.tv.event.RefreshEvent;
import com.fongmi.android.tv.impl.FilterCallback;
import com.fongmi.android.tv.impl.SiteCallback;
import com.fongmi.android.tv.ui.activity.BaseFragment;
import com.fongmi.android.tv.ui.activity.CollectActivity;
import com.fongmi.android.tv.ui.adapter.TypeAdapter;
import com.fongmi.android.tv.ui.base.BaseFragment;
import com.fongmi.android.tv.ui.custom.dialog.FilterDialog;
import com.fongmi.android.tv.ui.custom.dialog.LinkDialog;
import com.fongmi.android.tv.ui.custom.dialog.SiteDialog;
@ -170,6 +170,7 @@ public class VodFragment extends BaseFragment implements SiteCallback, FilterCal
public void setAdapter(Result result) {
try {
if (mAdapter.hasType()) return;
result.setTypes(getTypes(result));
mAdapter.addAll(result.getTypes());
for (Class item : mAdapter.getTypes()) if (result.getFilters().containsKey(item.getTypeId())) item.setFilters(result.getFilters().get(item.getTypeId()));

@ -21,11 +21,11 @@ import com.fongmi.android.tv.bean.Site;
import com.fongmi.android.tv.bean.Vod;
import com.fongmi.android.tv.databinding.FragmentHomeBinding;
import com.fongmi.android.tv.model.SiteViewModel;
import com.fongmi.android.tv.ui.activity.BaseFragment;
import com.fongmi.android.tv.ui.activity.CollectActivity;
import com.fongmi.android.tv.ui.activity.DetailActivity;
import com.fongmi.android.tv.ui.adapter.HistoryAdapter;
import com.fongmi.android.tv.ui.adapter.VodAdapter;
import com.fongmi.android.tv.ui.base.BaseFragment;
import com.fongmi.android.tv.ui.fragment.VodFragment;
public class HomeFragment extends BaseFragment implements VodAdapter.OnClickListener, HistoryAdapter.OnClickListener, SwipeRefreshLayout.OnRefreshListener {

@ -16,10 +16,10 @@ import com.fongmi.android.tv.api.ApiConfig;
import com.fongmi.android.tv.bean.Vod;
import com.fongmi.android.tv.databinding.FragmentTypeBinding;
import com.fongmi.android.tv.model.SiteViewModel;
import com.fongmi.android.tv.ui.activity.BaseFragment;
import com.fongmi.android.tv.ui.activity.CollectActivity;
import com.fongmi.android.tv.ui.activity.DetailActivity;
import com.fongmi.android.tv.ui.adapter.VodAdapter;
import com.fongmi.android.tv.ui.base.BaseFragment;
import com.fongmi.android.tv.ui.custom.CustomScroller;
import com.fongmi.android.tv.ui.fragment.VodFragment;

Loading…
Cancel
Save