From 491e2432a6d047e7d743133c6a1a1e74d0498ce6 Mon Sep 17 00:00:00 2001 From: 230421 <230421@epvc.pt> Date: Wed, 3 Dec 2025 10:00:32 +0000 Subject: [PATCH] =?UTF-8?q?Adi=C3=A7=C3=A3o=20do=20ecr=C3=A3=20de=20defini?= =?UTF-8?q?=C3=A7=C3=B5es?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/example/vdcscore/MainActivity.java | 2 +- .../ui/definicoes/DefinicoesFragment.java | 61 +++++ .../ui/slideshow/SlideshowFragment.java | 37 --- .../ui/slideshow/SlideshowViewModel.java | 19 -- .../main/res/layout/fragment_definicoes.xml | 221 ++++++++++++++++++ .../main/res/layout/fragment_slideshow.xml | 22 -- .../main/res/menu/activity_main_drawer.xml | 6 +- .../main/res/navigation/mobile_navigation.xml | 8 +- app/src/main/res/values/strings.xml | 2 +- 9 files changed, 291 insertions(+), 87 deletions(-) create mode 100644 app/src/main/java/com/example/vdcscore/ui/definicoes/DefinicoesFragment.java delete mode 100644 app/src/main/java/com/example/vdcscore/ui/slideshow/SlideshowFragment.java delete mode 100644 app/src/main/java/com/example/vdcscore/ui/slideshow/SlideshowViewModel.java create mode 100644 app/src/main/res/layout/fragment_definicoes.xml delete mode 100644 app/src/main/res/layout/fragment_slideshow.xml diff --git a/app/src/main/java/com/example/vdcscore/MainActivity.java b/app/src/main/java/com/example/vdcscore/MainActivity.java index 9d66b83..ad83af6 100644 --- a/app/src/main/java/com/example/vdcscore/MainActivity.java +++ b/app/src/main/java/com/example/vdcscore/MainActivity.java @@ -42,7 +42,7 @@ public class MainActivity extends AppCompatActivity { // Passing each menu ID as a set of Ids because each // menu should be considered as top level destinations. mAppBarConfiguration = new AppBarConfiguration.Builder( - R.id.nav_home, R.id.nav_gallery, R.id.nav_slideshow) + R.id.nav_home, R.id.nav_gallery, R.id.nav_definicoes) .setOpenableLayout(drawer) .build(); NavController navController = Navigation.findNavController(this, R.id.nav_host_fragment_content_main); diff --git a/app/src/main/java/com/example/vdcscore/ui/definicoes/DefinicoesFragment.java b/app/src/main/java/com/example/vdcscore/ui/definicoes/DefinicoesFragment.java new file mode 100644 index 0000000..9e58f6c --- /dev/null +++ b/app/src/main/java/com/example/vdcscore/ui/definicoes/DefinicoesFragment.java @@ -0,0 +1,61 @@ +package com.example.vdcscore.ui.definicoes; + +import android.content.Intent; +import android.os.Bundle; +import android.provider.Settings; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.Toast; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.fragment.app.Fragment; + +import com.example.vdcscore.databinding.FragmentDefinicoesBinding; + +/** + * Tela de definições com ações simples para o utilizador. + */ +public class DefinicoesFragment extends Fragment { + + private FragmentDefinicoesBinding binding; + + @Nullable + @Override + public View onCreateView(@NonNull LayoutInflater inflater, + @Nullable ViewGroup container, + @Nullable Bundle savedInstanceState) { + binding = FragmentDefinicoesBinding.inflate(inflater, container, false); + setupUi(); + return binding.getRoot(); + } + + private void setupUi() { + binding.cardConta.setOnClickListener(view -> + Toast.makeText(requireContext(), + "Gestão de conta disponível em breve.", + Toast.LENGTH_SHORT).show()); + + binding.switchNotifications.setOnCheckedChangeListener((buttonView, isChecked) -> + binding.textNotificationsStatus.setText( + isChecked ? "Ativadas" : "Desativadas")); + + binding.switchDarkMode.setOnCheckedChangeListener((buttonView, isChecked) -> + binding.textDarkModeStatus.setText( + isChecked ? "Ativo" : "Inativo")); + + binding.btnOpenSystemSettings.setOnClickListener(v -> { + Intent intent = new Intent(Settings.ACTION_SETTINGS); + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + startActivity(intent); + }); + } + + @Override + public void onDestroyView() { + super.onDestroyView(); + binding = null; + } +} + diff --git a/app/src/main/java/com/example/vdcscore/ui/slideshow/SlideshowFragment.java b/app/src/main/java/com/example/vdcscore/ui/slideshow/SlideshowFragment.java deleted file mode 100644 index c44c47d..0000000 --- a/app/src/main/java/com/example/vdcscore/ui/slideshow/SlideshowFragment.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.example.vdcscore.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.example.vdcscore.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/example/vdcscore/ui/slideshow/SlideshowViewModel.java b/app/src/main/java/com/example/vdcscore/ui/slideshow/SlideshowViewModel.java deleted file mode 100644 index 5e5f374..0000000 --- a/app/src/main/java/com/example/vdcscore/ui/slideshow/SlideshowViewModel.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.example.vdcscore.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_definicoes.xml b/app/src/main/res/layout/fragment_definicoes.xml new file mode 100644 index 0000000..e3a6444 --- /dev/null +++ b/app/src/main/res/layout/fragment_definicoes.xml @@ -0,0 +1,221 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +