diff --git a/app/build.gradle b/app/build.gradle index 97f8f240b..3edaf22ea 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -74,8 +74,6 @@ dependencies { implementation 'org.nanohttpd:nanohttpd:2.3.1' implementation('org.simpleframework:simple-xml:2.7.1') { exclude group: 'stax', module: 'stax-api' exclude group: 'xpp3', module: 'xpp3' } leanbackImplementation 'androidx.leanback:leanback:1.2.0-alpha02' - mobileImplementation 'androidx.navigation:navigation-fragment:2.5.2' - mobileImplementation 'androidx.navigation:navigation-ui:2.5.2' annotationProcessor 'androidx.room:room-compiler:2.4.3' annotationProcessor 'com.github.bumptech.glide:compiler:4.13.2' } \ No newline at end of file diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/MainActivity.java b/app/src/mobile/java/com/fongmi/android/tv/ui/activity/MainActivity.java index 875c8f808..24fb5dd1b 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/MainActivity.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/activity/MainActivity.java @@ -2,17 +2,26 @@ package com.fongmi.android.tv.ui.activity; import android.app.Activity; import android.content.Intent; +import android.view.MenuItem; -import androidx.navigation.fragment.NavHostFragment; -import androidx.navigation.ui.NavigationUI; +import androidx.annotation.NonNull; +import androidx.fragment.app.Fragment; import androidx.viewbinding.ViewBinding; import com.fongmi.android.tv.R; import com.fongmi.android.tv.databinding.ActivityMainBinding; +import com.fongmi.android.tv.ui.fragment.HomeFragment; +import com.fongmi.android.tv.ui.fragment.SettingFragment; +import com.fongmi.android.tv.ui.fragment.VodFragment; +import com.google.android.material.navigation.NavigationBarView; -public class MainActivity extends BaseActivity { +import java.util.ArrayList; +import java.util.List; + +public class MainActivity extends BaseActivity implements NavigationBarView.OnItemSelectedListener { private ActivityMainBinding mBinding; + private List mFragments; public static void start(Activity activity) { activity.startActivity(new Intent(activity, MainActivity.class)); @@ -26,11 +35,32 @@ public class MainActivity extends BaseActivity { @Override protected void initView() { - NavHostFragment fragment = (NavHostFragment) getSupportFragmentManager().findFragmentById(R.id.container); - NavigationUI.setupWithNavController(mBinding.navigation, fragment.getNavController()); + mFragments = new ArrayList<>(); + mFragments.add(HomeFragment.newInstance()); + mFragments.add(VodFragment.newInstance()); + mFragments.add(SettingFragment.newInstance()); + for (Fragment fragment : mFragments) getSupportFragmentManager().beginTransaction().add(R.id.container, fragment).hide(fragment).commit(); } @Override protected void initEvent() { + mBinding.navigation.setOnItemSelectedListener(this); + } + + @Override + public boolean onNavigationItemSelected(@NonNull MenuItem item) { + switch (item.getItemId()) { + case R.id.home: + getSupportFragmentManager().beginTransaction().show(mFragments.get(0)).hide(mFragments.get(1)).hide(mFragments.get(2)).commit(); + return true; + case R.id.vod: + getSupportFragmentManager().beginTransaction().show(mFragments.get(1)).hide(mFragments.get(0)).hide(mFragments.get(2)).commit(); + return true; + case R.id.setting: + getSupportFragmentManager().beginTransaction().show(mFragments.get(2)).hide(mFragments.get(0)).hide(mFragments.get(1)).commit(); + return true; + default: + return false; + } } } diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/HomeFragment.java b/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/HomeFragment.java index 0b8e74639..001a3710a 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/HomeFragment.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/HomeFragment.java @@ -18,7 +18,6 @@ import com.fongmi.android.tv.ui.activity.BaseFragment; import com.fongmi.android.tv.ui.adapter.HistoryAdapter; import com.fongmi.android.tv.ui.adapter.VodAdapter; import com.fongmi.android.tv.ui.custom.SpaceItemDecoration; -import com.google.android.exoplayer2.util.Log; public class HomeFragment extends BaseFragment implements VodAdapter.OnClickListener, HistoryAdapter.OnClickListener { @@ -27,6 +26,10 @@ public class HomeFragment extends BaseFragment implements VodAdapter.OnClickList private SiteViewModel mViewModel; private VodAdapter mVodAdapter; + public static HomeFragment newInstance() { + return new HomeFragment(); + } + @Override protected ViewBinding getBinding(@NonNull LayoutInflater inflater, @Nullable ViewGroup container) { return mBinding = FragmentHomeBinding.inflate(inflater, container, false); diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/SettingFragment.java b/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/SettingFragment.java index 88990a149..738ed962d 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/SettingFragment.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/SettingFragment.java @@ -44,6 +44,10 @@ public class SettingFragment extends BaseFragment implements ConfigCallback, Sit private FragmentSettingBinding mBinding; + public static SettingFragment newInstance() { + return new SettingFragment(); + } + @Override protected ViewBinding getBinding(@NonNull LayoutInflater inflater, @Nullable ViewGroup container) { return mBinding = FragmentSettingBinding.inflate(inflater, container, false); diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/VodFragment.java b/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/VodFragment.java index 18fbfe15e..9378dbddb 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/VodFragment.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/VodFragment.java @@ -14,6 +14,10 @@ public class VodFragment extends BaseFragment { private FragmentVodBinding mBinding; + public static VodFragment newInstance() { + return new VodFragment(); + } + @Override protected ViewBinding getBinding(@NonNull LayoutInflater inflater, @Nullable ViewGroup container) { return mBinding = FragmentVodBinding.inflate(inflater, container, false); diff --git a/app/src/mobile/res/layout/activity_main.xml b/app/src/mobile/res/layout/activity_main.xml index 1510d7b32..6f5e440b9 100644 --- a/app/src/mobile/res/layout/activity_main.xml +++ b/app/src/mobile/res/layout/activity_main.xml @@ -7,12 +7,9 @@ + android:layout_above="@+id/navigation" /> - - - - - - - - - \ No newline at end of file