diff --git a/app/src/main/java/com/cringe_studios/cringe_authenticator/MainActivity.java b/app/src/main/java/com/cringe_studios/cringe_authenticator/MainActivity.java index d2e22de..d2e8cf7 100644 --- a/app/src/main/java/com/cringe_studios/cringe_authenticator/MainActivity.java +++ b/app/src/main/java/com/cringe_studios/cringe_authenticator/MainActivity.java @@ -4,11 +4,13 @@ import android.os.Bundle; import android.view.View; import android.view.Menu; +import com.cringe_studios.cringe_authenticator.ui.dynamic.DynamicFragment; import com.google.android.material.snackbar.Snackbar; import com.google.android.material.navigation.NavigationView; import androidx.navigation.NavController; import androidx.navigation.Navigation; +import androidx.navigation.fragment.NavHostFragment; import androidx.navigation.ui.AppBarConfiguration; import androidx.navigation.ui.NavigationUI; import androidx.drawerlayout.widget.DrawerLayout; @@ -29,8 +31,12 @@ public class MainActivity extends AppCompatActivity { setContentView(binding.getRoot()); setSupportActionBar(binding.appBarMain.toolbar); - binding.appBarMain.fab.setOnClickListener(view -> Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG) - .setAction("Action", null).show()); + binding.appBarMain.fab.setOnClickListener(view -> { + getSupportActionBar().setTitle("DYNAMIC"); + NavHostFragment f = (NavHostFragment) getSupportFragmentManager().findFragmentById(R.id.nav_host_fragment_content_main); + f.getChildFragmentManager().beginTransaction().replace(R.id.nav_host_fragment_content_main, new DynamicFragment()).commit(); + Snackbar.make(view, "Dynamic fragment opened", Snackbar.LENGTH_LONG).setAction("Action", null).show(); + }); DrawerLayout drawer = binding.drawerLayout; NavigationView navigationView = binding.navView; // Passing each menu ID as a set of Ids because each diff --git a/app/src/main/java/com/cringe_studios/cringe_authenticator/ui/credits/CreditsFragment.java b/app/src/main/java/com/cringe_studios/cringe_authenticator/ui/credits/CreditsFragment.java new file mode 100644 index 0000000..7ecfb88 --- /dev/null +++ b/app/src/main/java/com/cringe_studios/cringe_authenticator/ui/credits/CreditsFragment.java @@ -0,0 +1,28 @@ +package com.cringe_studios.cringe_authenticator.ui.credits; + +import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import androidx.annotation.NonNull; +import androidx.fragment.app.Fragment; + +import com.cringe_studios.cringe_authenticator.databinding.FragmentCreditsBinding; + +public class CreditsFragment extends Fragment { + + private FragmentCreditsBinding binding; + + public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { + binding = FragmentCreditsBinding.inflate(inflater, container, false); + View root = binding.getRoot(); + return root; + } + + @Override + public void onDestroyView() { + super.onDestroyView(); + binding = null; + } +} \ No newline at end of file diff --git a/app/src/main/java/com/cringe_studios/cringe_authenticator/ui/dynamic/DynamicFragment.java b/app/src/main/java/com/cringe_studios/cringe_authenticator/ui/dynamic/DynamicFragment.java new file mode 100644 index 0000000..97205ca --- /dev/null +++ b/app/src/main/java/com/cringe_studios/cringe_authenticator/ui/dynamic/DynamicFragment.java @@ -0,0 +1,32 @@ +package com.cringe_studios.cringe_authenticator.ui.dynamic; + +import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.fragment.app.Fragment; + +import com.cringe_studios.cringe_authenticator.databinding.FragmentDynamicBinding; + +public class DynamicFragment extends Fragment { + + private FragmentDynamicBinding binding; + + public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { + binding = FragmentDynamicBinding.inflate(inflater, container, false); + View root = binding.getRoot(); + + final TextView textView = binding.textDynamic; + textView.append("!"); + return root; + } + + @Override + public void onDestroyView() { + super.onDestroyView(); + binding = null; + } +} diff --git a/app/src/main/java/com/cringe_studios/cringe_authenticator/ui/gallery/GalleryFragment.java b/app/src/main/java/com/cringe_studios/cringe_authenticator/ui/gallery/GalleryFragment.java deleted file mode 100644 index 13f15a6..0000000 --- a/app/src/main/java/com/cringe_studios/cringe_authenticator/ui/gallery/GalleryFragment.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.cringe_studios.cringe_authenticator.ui.gallery; - -import android.os.Bundle; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.TextView; - -import androidx.annotation.NonNull; -import androidx.fragment.app.Fragment; -import androidx.lifecycle.ViewModelProvider; - -import com.cringe_studios.cringe_authenticator.databinding.FragmentGalleryBinding; - -public class GalleryFragment extends Fragment { - - private FragmentGalleryBinding binding; - - public View onCreateView(@NonNull LayoutInflater inflater, - ViewGroup container, Bundle savedInstanceState) { - GalleryViewModel galleryViewModel = - new ViewModelProvider(this).get(GalleryViewModel.class); - - binding = FragmentGalleryBinding.inflate(inflater, container, false); - View root = binding.getRoot(); - - final TextView textView = binding.textGallery; - galleryViewModel.getText().observe(getViewLifecycleOwner(), textView::setText); - return root; - } - - @Override - public void onDestroyView() { - super.onDestroyView(); - binding = null; - } -} \ No newline at end of file diff --git a/app/src/main/java/com/cringe_studios/cringe_authenticator/ui/gallery/GalleryViewModel.java b/app/src/main/java/com/cringe_studios/cringe_authenticator/ui/gallery/GalleryViewModel.java deleted file mode 100644 index b808eb1..0000000 --- a/app/src/main/java/com/cringe_studios/cringe_authenticator/ui/gallery/GalleryViewModel.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.cringe_studios.cringe_authenticator.ui.gallery; - -import androidx.lifecycle.LiveData; -import androidx.lifecycle.MutableLiveData; -import androidx.lifecycle.ViewModel; - -public class GalleryViewModel extends ViewModel { - - private final MutableLiveData mText; - - public GalleryViewModel() { - mText = new MutableLiveData<>(); - mText.setValue("This is gallery fragment"); - } - - public LiveData getText() { - return mText; - } -} \ No newline at end of file diff --git a/app/src/main/java/com/cringe_studios/cringe_authenticator/ui/home/HomeFragment.java b/app/src/main/java/com/cringe_studios/cringe_authenticator/ui/home/HomeFragment.java index 1e9de47..feefc28 100644 --- a/app/src/main/java/com/cringe_studios/cringe_authenticator/ui/home/HomeFragment.java +++ b/app/src/main/java/com/cringe_studios/cringe_authenticator/ui/home/HomeFragment.java @@ -16,16 +16,9 @@ public class HomeFragment extends Fragment { private FragmentHomeBinding binding; - public View onCreateView(@NonNull LayoutInflater inflater, - ViewGroup container, Bundle savedInstanceState) { - HomeViewModel homeViewModel = - new ViewModelProvider(this).get(HomeViewModel.class); - + public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { binding = FragmentHomeBinding.inflate(inflater, container, false); View root = binding.getRoot(); - - final TextView textView = binding.textHome; - homeViewModel.getText().observe(getViewLifecycleOwner(), textView::setText); return root; } diff --git a/app/src/main/java/com/cringe_studios/cringe_authenticator/ui/home/HomeViewModel.java b/app/src/main/java/com/cringe_studios/cringe_authenticator/ui/home/HomeViewModel.java deleted file mode 100644 index 144ab2f..0000000 --- a/app/src/main/java/com/cringe_studios/cringe_authenticator/ui/home/HomeViewModel.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.cringe_studios.cringe_authenticator.ui.home; - -import androidx.lifecycle.LiveData; -import androidx.lifecycle.MutableLiveData; -import androidx.lifecycle.ViewModel; - -public class HomeViewModel extends ViewModel { - - private final MutableLiveData mText; - - public HomeViewModel() { - mText = new MutableLiveData<>(); - mText.setValue("This is home fragment"); - } - - public LiveData getText() { - return mText; - } -} \ No newline at end of file diff --git a/app/src/main/java/com/cringe_studios/cringe_authenticator/ui/settings/SettingsFragment.java b/app/src/main/java/com/cringe_studios/cringe_authenticator/ui/settings/SettingsFragment.java new file mode 100644 index 0000000..4383717 --- /dev/null +++ b/app/src/main/java/com/cringe_studios/cringe_authenticator/ui/settings/SettingsFragment.java @@ -0,0 +1,28 @@ +package com.cringe_studios.cringe_authenticator.ui.settings; + +import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import androidx.annotation.NonNull; +import androidx.fragment.app.Fragment; + +import com.cringe_studios.cringe_authenticator.databinding.FragmentSettingsBinding; + +public class SettingsFragment extends Fragment { + + private FragmentSettingsBinding binding; + + public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { + binding = FragmentSettingsBinding.inflate(inflater, container, false); + View root = binding.getRoot(); + return root; + } + + @Override + public void onDestroyView() { + super.onDestroyView(); + binding = null; + } +} \ No newline at end of file diff --git a/app/src/main/java/com/cringe_studios/cringe_authenticator/ui/slideshow/SlideshowFragment.java b/app/src/main/java/com/cringe_studios/cringe_authenticator/ui/slideshow/SlideshowFragment.java deleted file mode 100644 index a036fbc..0000000 --- a/app/src/main/java/com/cringe_studios/cringe_authenticator/ui/slideshow/SlideshowFragment.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.cringe_studios.cringe_authenticator.ui.slideshow; - -import android.os.Bundle; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.TextView; - -import androidx.annotation.NonNull; -import androidx.fragment.app.Fragment; -import androidx.lifecycle.ViewModelProvider; - -import com.cringe_studios.cringe_authenticator.databinding.FragmentSlideshowBinding; - -public class SlideshowFragment extends Fragment { - - private FragmentSlideshowBinding binding; - - public View onCreateView(@NonNull LayoutInflater inflater, - ViewGroup container, Bundle savedInstanceState) { - SlideshowViewModel slideshowViewModel = - new ViewModelProvider(this).get(SlideshowViewModel.class); - - binding = FragmentSlideshowBinding.inflate(inflater, container, false); - View root = binding.getRoot(); - - final TextView textView = binding.textSlideshow; - slideshowViewModel.getText().observe(getViewLifecycleOwner(), textView::setText); - return root; - } - - @Override - public void onDestroyView() { - super.onDestroyView(); - binding = null; - } -} \ No newline at end of file diff --git a/app/src/main/java/com/cringe_studios/cringe_authenticator/ui/slideshow/SlideshowViewModel.java b/app/src/main/java/com/cringe_studios/cringe_authenticator/ui/slideshow/SlideshowViewModel.java deleted file mode 100644 index f8ae675..0000000 --- a/app/src/main/java/com/cringe_studios/cringe_authenticator/ui/slideshow/SlideshowViewModel.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.cringe_studios.cringe_authenticator.ui.slideshow; - -import androidx.lifecycle.LiveData; -import androidx.lifecycle.MutableLiveData; -import androidx.lifecycle.ViewModel; - -public class SlideshowViewModel extends ViewModel { - - private final MutableLiveData mText; - - public SlideshowViewModel() { - mText = new MutableLiveData<>(); - mText.setValue("This is slideshow fragment"); - } - - public LiveData getText() { - return mText; - } -} \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_slideshow.xml b/app/src/main/res/layout/fragment_credits.xml similarity index 92% rename from app/src/main/res/layout/fragment_slideshow.xml rename to app/src/main/res/layout/fragment_credits.xml index 2141a33..671f928 100644 --- a/app/src/main/res/layout/fragment_slideshow.xml +++ b/app/src/main/res/layout/fragment_credits.xml @@ -4,7 +4,7 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" - tools:context=".ui.slideshow.SlideshowFragment"> + tools:context=".ui.credits.CreditsFragment"> + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_home.xml b/app/src/main/res/layout/fragment_home.xml index f3d9b08..0b76a8f 100644 --- a/app/src/main/res/layout/fragment_home.xml +++ b/app/src/main/res/layout/fragment_home.xml @@ -13,6 +13,7 @@ android:layout_marginStart="8dp" android:layout_marginTop="8dp" android:layout_marginEnd="8dp" + android:text="Home" android:textAlignment="center" android:textSize="20sp" app:layout_constraintBottom_toBottomOf="parent" diff --git a/app/src/main/res/layout/fragment_gallery.xml b/app/src/main/res/layout/fragment_settings.xml similarity index 91% rename from app/src/main/res/layout/fragment_gallery.xml rename to app/src/main/res/layout/fragment_settings.xml index 643fe25..f29e989 100644 --- a/app/src/main/res/layout/fragment_gallery.xml +++ b/app/src/main/res/layout/fragment_settings.xml @@ -4,7 +4,7 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" - tools:context=".ui.gallery.GalleryFragment"> + tools:context=".ui.settings.SettingsFragment"> + android:icon="@drawable/ic_launcher_foreground" + android:title="Home" /> + android:icon="@drawable/ic_launcher_foreground" + android:title="Settings" /> + android:icon="@drawable/ic_launcher_foreground" + android:title="Credits" /> \ No newline at end of file diff --git a/app/src/main/res/navigation/mobile_navigation.xml b/app/src/main/res/navigation/mobile_navigation.xml index bcc31f8..9ac3939 100644 --- a/app/src/main/res/navigation/mobile_navigation.xml +++ b/app/src/main/res/navigation/mobile_navigation.xml @@ -13,13 +13,13 @@ + tools:layout="@layout/fragment_settings" /> + tools:layout="@layout/fragment_credits" /> \ No newline at end of file