Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- The Phoenix Hospitality Management System
- Database Manager App
- Main Activity Code File
- Copyright (c) 2020 By Troy Marker Enterprises
- All Rights Under Copyright Reserved
- The code in this file was created for use with the Phoenix Hospitality Management System (PHMS).
- Use of this code outside the PHMS is strictly prohibited.
- */
- package com.phoenixhosman.phoenixdbmanagers;
- import android.annotation.SuppressLint;
- import android.content.Intent;
- import android.database.Cursor;
- import android.net.Uri;
- import android.os.Bundle;
- import android.view.LayoutInflater;
- import android.view.View;
- import android.view.ViewGroup;
- import android.view.WindowManager;
- import android.widget.Button;
- import androidx.annotation.NonNull;
- import androidx.appcompat.app.AlertDialog;
- import androidx.fragment.app.FragmentActivity;
- import androidx.recyclerview.widget.LinearLayoutManager;
- import androidx.recyclerview.widget.RecyclerView;
- import java.util.ArrayList;
- import java.util.List;
- import java.util.concurrent.atomic.AtomicInteger;
- import static androidx.recyclerview.widget.RecyclerView.Adapter;
- import static androidx.recyclerview.widget.RecyclerView.inflate;
- import static java.util.Objects.requireNonNull;
- /**
- * Code for the main activity
- * @author Troy Marker
- * @version 1.0.0
- */
- public class ActivityMain extends FragmentActivity implements InterfaceDataPasser, View.OnClickListener {
- private RecyclerView mRecyclerView;
- private RecyclerView sRecyclerView;
- private Adapter mAdapter;
- private Adapter sAdapter;
- private final LinearLayoutManager mLayoutManager = new LinearLayoutManager(this);
- private final LinearLayoutManager sLayoutManager = new LinearLayoutManager(this);
- private String strCoName;
- private String strApiUrl;
- private String strGradename;
- private String strMenuName;
- private String strSubMenuName;
- private final Bundle args = new Bundle();
- private final ArrayList<ObjectMenu> MenuList = new ArrayList<>();
- private final ArrayList<ObjectSubMenu> objSubMenu = new ArrayList<>();
- private final ArrayList<ObjectMenu> SubmenuList = new ArrayList<>();
- private final FragmentBlank blank1 = new FragmentBlank();
- private final FragmentBlank blank2 = new FragmentBlank();
- /**
- * Override of the parent onCreate method
- * @param savedInstanceState The current instance state
- */
- @SuppressLint("Recycle")
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
- View decorView = getWindow().getDecorView();
- decorView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_FULLSCREEN);
- Cursor cursor = getContentResolver().query(Uri.parse("content://com.phoenixhosman.installer.ProviderSettings/settings"), null, null, null, null, null);
- assert cursor != null;
- if(cursor.moveToFirst()) {
- while(!cursor.isAfterLast()) {
- strCoName = cursor.getString(cursor.getColumnIndex("coname"));
- strApiUrl = cursor.getString(cursor.getColumnIndex("apiurl"));
- cursor.moveToNext();
- }
- } else {
- Error("\nRequired setting missing.\nPlease (re)run Phoenix Install App", false);
- }
- cursor = getContentResolver().query(Uri.parse("content://com.phoenixhosman.launcher.ProviderUser/acl"), null, null, null, null, null);
- assert cursor != null;
- if(cursor.moveToFirst()) {
- while(!cursor.isAfterLast()) {
- strGradename = cursor.getString(cursor.getColumnIndex("gradename"));
- cursor.moveToNext();
- }
- } else {
- Error("\nNo Logged User.\nPlease launch app from the Phoenix Launcher", true);
- }
- if (!strGradename.contains("Administrator")) {
- Error("Administrator Grade Required.\nAdministrator Rights required to use this app", true);
- }
- setContentView(R.layout.activity_main);
- mRecyclerView = findViewById(R.id.recyclerViewMainMenu);
- sRecyclerView = findViewById(R.id.recyclerViewSubMenu);
- Button btnExitButton = findViewById(R.id.btnExitButton);
- Button btnRefreshButton = findViewById(R.id.btnRefreshButton);
- args.putString("CoName", strCoName);
- args.putString("ApiUrl", strApiUrl);
- mAdapter = new MenuAdapter(MenuList);
- sAdapter = new SubmenuAdapter(SubmenuList);
- mRecyclerView.setHasFixedSize(true);
- sRecyclerView.setHasFixedSize(true);
- mRecyclerView.setLayoutManager(mLayoutManager);
- sRecyclerView.setLayoutManager(sLayoutManager);
- mRecyclerView.setAdapter(mAdapter);
- sRecyclerView.setAdapter(sAdapter);
- btnExitButton.setOnClickListener(this);
- btnRefreshButton.setOnClickListener(this);
- if (findViewById(R.id.topFrame) != null) {
- if (savedInstanceState != null) {
- return;
- }
- getSupportFragmentManager().beginTransaction().add(R.id.topFrame, blank1).commit();
- getSupportFragmentManager().beginTransaction().add(R.id.bottomFrame, blank2).commit();
- }
- BuildMenu();
- mAdapter.notifyDataSetChanged();
- }
- /**
- * The error display method
- * This method displays a dialog box with an error message and a close button.
- * @param strError the error message to display
- */
- @SuppressWarnings ("SameParameterValue")
- public void Error(String strError, Boolean exit) {
- AlertDialog.Builder mBuilder = new AlertDialog.Builder(this);
- View view = inflate(this, R.layout.dialog_error, null);
- Button btnExit = view.findViewById(R.id.btnExitButton);
- Button btnError = view.findViewById(R.id.btnErrorMessage);
- btnError.setText(getString(R.string.error, strError ));
- mBuilder.setView(view);
- AlertDialog dialog = mBuilder.create();
- dialog.setCanceledOnTouchOutside(false);
- dialog.setCancelable(false);
- dialog.show();
- btnExit.setOnClickListener(v -> {
- dialog.dismiss();
- if (exit) finishAndRemoveTask();
- });
- }
- /**
- * The information display method
- * This method displays a dialog box with an error message and a close button.
- * @param strMessage the error message to display
- */
- @SuppressWarnings ("SameParameterValue")
- public void Success(String strMessage) {
- AlertDialog.Builder mBuilder = new AlertDialog.Builder(this);
- View view = inflate(this, R.layout.dialog_success, null);
- Button btnExit = view.findViewById(R.id.btnButton);
- Button btnError = view.findViewById(R.id.btnMessage);
- btnError.setText(getString(R.string.success, strMessage ));
- mBuilder.setView(view);
- AlertDialog dialog = mBuilder.create();
- dialog.setCanceledOnTouchOutside(false);
- dialog.setCancelable(false);
- dialog.show();
- btnExit.setOnClickListener(v -> dialog.dismiss());
- }
- /**
- * Method to define the main and sub menus
- */
- public void BuildMenu() {
- MenuList.add(new ObjectMenu("Users"));
- MenuList.add(new ObjectMenu("Grades"));
- MenuList.add(new ObjectMenu("Departments"));
- MenuList.add(new ObjectMenu("Inventory"));
- objSubMenu.add(new ObjectSubMenu("Users", "List"));
- objSubMenu.add(new ObjectSubMenu("Users", "Add"));
- objSubMenu.add(new ObjectSubMenu("Users","Update"));
- objSubMenu.add(new ObjectSubMenu("Users", "Remove"));
- objSubMenu.add(new ObjectSubMenu("Grades", "List"));
- objSubMenu.add(new ObjectSubMenu("Grades", "Add"));
- objSubMenu.add(new ObjectSubMenu("Grades","Update"));
- objSubMenu.add(new ObjectSubMenu("Grades", "Remove"));
- objSubMenu.add(new ObjectSubMenu("Departments", "List"));
- objSubMenu.add(new ObjectSubMenu("Departments", "Add"));
- objSubMenu.add(new ObjectSubMenu("Departments","Update"));
- objSubMenu.add(new ObjectSubMenu("Departments", "Remove"));
- objSubMenu.add(new ObjectSubMenu("Inventory", "List"));
- objSubMenu.add(new ObjectSubMenu("Inventory", "Add"));
- objSubMenu.add(new ObjectSubMenu("Inventory","Update"));
- objSubMenu.add(new ObjectSubMenu("Inventory", "Remove"));
- }
- /**
- * Method to return a sub menu
- * @param parent The parent of the submenu
- */
- public void GetSubMenu(String parent) {
- SubmenuList.clear();
- for (ObjectSubMenu subMenu : objSubMenu) {
- if (subMenu.getParent().equals(parent)) {
- SubmenuList.add(new ObjectMenu(subMenu.getName()));
- }
- }
- }
- @Override
- public void onClick(View v) {
- switch (v.getId()) {
- case R.id.btnRefreshButton:
- mRecyclerView.refreshDrawableState();
- sAdapter.notifyDataSetChanged();
- //Intent intent = getIntent();
- //finish();
- //startActivity(intent);
- break;
- case R.id.btnExitButton:
- finishAffinity();
- break;
- default:
- throw new IllegalStateException("Unexpected value: " + v.getId());
- }
- }
- /**
- * The Main Menu Recycler View Adapter
- */
- public class MenuAdapter extends RecyclerView.Adapter<MenuAdapter.MenuViewHolder> {
- final private List<ObjectMenu> mMenu;
- class MenuViewHolder extends RecyclerView.ViewHolder {
- final Button btnMenuItem;
- MenuViewHolder(View menuView) {
- super(menuView);
- btnMenuItem = menuView.findViewById(R.id.btnMainMenuItem);
- }
- }
- MenuAdapter(ArrayList<ObjectMenu> menu) {
- mMenu = menu;
- }
- @NonNull
- @Override
- public MenuViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
- View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.list_mainmenu, parent,false);
- return new MenuViewHolder(view);
- }
- @Override
- public void onBindViewHolder(@NonNull final MenuViewHolder holder, int position) {
- final ObjectMenu currentMenu = mMenu.get(position);
- holder.btnMenuItem.setText(currentMenu.getName());
- holder.btnMenuItem.setOnClickListener(v -> {
- getSupportFragmentManager().beginTransaction().replace(R.id.topFrame, blank1).commit();
- getSupportFragmentManager().beginTransaction().replace(R.id.bottomFrame, blank2).commit();
- if (holder.btnMenuItem.isSelected()) {
- strSubMenuName = null;
- holder.btnMenuItem.setSelected(false);
- resetSubMenu(sRecyclerView);
- SubmenuList.clear();
- } else {
- resetMainMenu(mRecyclerView);
- resetSubMenu(sRecyclerView);
- holder.btnMenuItem.setSelected(true);
- strMenuName = currentMenu.getName();
- GetSubMenu(currentMenu.getName());
- }
- sAdapter.notifyDataSetChanged();
- });
- }
- @Override
- public int getItemCount() {
- return mMenu.size();
- }
- }
- /**
- * The Submenu Recycler View Adapter
- */
- public class SubmenuAdapter extends RecyclerView.Adapter<SubmenuAdapter.SubmenuViewHolder> {
- final private List<ObjectMenu> mSubmenuList;
- class SubmenuViewHolder extends RecyclerView.ViewHolder {
- final Button btnSubmenuItem;
- SubmenuViewHolder(View submenuView) {
- super(submenuView);
- btnSubmenuItem = submenuView.findViewById(R.id.btnSubMenuItem);
- }
- }
- SubmenuAdapter(ArrayList<ObjectMenu> submenuList) {
- mSubmenuList = submenuList;
- }
- @NonNull
- @Override
- public SubmenuViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
- View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.list_submenu, parent, false);
- return new SubmenuViewHolder(view);
- }
- @Override
- public void onBindViewHolder(@NonNull final SubmenuViewHolder holder, int position) {
- final ObjectMenu currentMenu = mSubmenuList.get(position);
- holder.btnSubmenuItem.setText(currentMenu.getName());
- holder.btnSubmenuItem.setOnClickListener(view -> {
- if (holder.btnSubmenuItem.isSelected()) {
- resetSubMenu(sRecyclerView);
- strSubMenuName = null;
- getSupportFragmentManager().beginTransaction().replace(R.id.topFrame, blank1).commit();
- getSupportFragmentManager().beginTransaction().replace(R.id.bottomFrame, blank2).commit();
- } else {
- resetSubMenu(sRecyclerView);
- holder.btnSubmenuItem.setSelected(true);
- strSubMenuName = currentMenu.getName();
- CallFragment();
- }
- });
- }
- @Override
- public int getItemCount() {
- return mSubmenuList.size();
- }
- }
- /**
- * Method to de-select all the menu buttons
- */
- private void resetMainMenu(RecyclerView rv) {
- for (AtomicInteger i = new AtomicInteger(); i.get() < rv.getChildCount(); i.getAndIncrement()) {
- MenuAdapter.MenuViewHolder holder = (MenuAdapter.MenuViewHolder) rv.findViewHolderForAdapterPosition(i.get());
- requireNonNull(holder).btnMenuItem.setSelected(false);
- }
- }
- /**
- * Method to de-select all the sub-menu buttons
- */
- private void resetSubMenu(RecyclerView rv) {
- for (AtomicInteger i = new AtomicInteger(); i.get() < rv.getChildCount(); i.getAndIncrement()) {
- SubmenuAdapter.SubmenuViewHolder holder = (SubmenuAdapter.SubmenuViewHolder) rv.findViewHolderForAdapterPosition(i.get());
- requireNonNull(holder).btnSubmenuItem.setSelected(false);
- }
- }
- /**
- * Method to load the requested menu option
- */
- private void CallFragment() {
- FragmentBlank blankFragment = new FragmentBlank();
- FragmentUserList userlistFragment = new FragmentUserList();
- FragmentGradeList gradelistFragment = new FragmentGradeList();
- FragmentDepartmentList departmentlistFragment = new FragmentDepartmentList();
- FragmentUserAdd useraddFragment = new FragmentUserAdd();
- FragmentGradeAdd gradeaddFragment = new FragmentGradeAdd();
- FragmentDepartmentAdd departmentaddFragment = new FragmentDepartmentAdd();
- switch (strMenuName) {
- case "Users":
- switch (strSubMenuName) {
- case "List":
- getSupportFragmentManager().beginTransaction().replace(R.id.topFrame, blankFragment).commit();
- args.putBoolean("update", false);
- args.putBoolean("remove", false);
- userlistFragment.setArguments(args);
- getSupportFragmentManager().beginTransaction().replace(R.id.bottomFrame, userlistFragment).commit();
- break;
- case "Add":
- useraddFragment.setArguments(args);
- getSupportFragmentManager().beginTransaction().replace(R.id.topFrame, useraddFragment).commit();
- args.putBoolean("update", false);
- args.putBoolean("remove", false);
- userlistFragment.setArguments(args);
- getSupportFragmentManager().beginTransaction().replace(R.id.bottomFrame, userlistFragment).commit();
- break;
- case "Update":
- args.putBoolean("update", true);
- args.putBoolean("remove", false);
- userlistFragment.setArguments(args);
- getSupportFragmentManager().beginTransaction().replace(R.id.topFrame, blankFragment).commit();
- getSupportFragmentManager().beginTransaction().replace(R.id.bottomFrame, userlistFragment).commit();
- break;
- case "Remove":
- args.putBoolean("update", false);
- args.putBoolean("remove", true);
- userlistFragment.setArguments(args);
- getSupportFragmentManager().beginTransaction().replace(R.id.topFrame, blankFragment).commit();
- getSupportFragmentManager().beginTransaction().replace(R.id.bottomFrame, userlistFragment).commit();
- break;
- default:
- throw new IllegalStateException("Unexpected value: " + strSubMenuName);
- }
- break;
- case "Grades":
- switch (strSubMenuName) {
- case "List":
- getSupportFragmentManager().beginTransaction().replace(R.id.topFrame, blankFragment).commit();
- args.putBoolean("update", false);
- args.putBoolean("remove", false);
- gradelistFragment.setArguments(args);
- getSupportFragmentManager().beginTransaction().replace(R.id.bottomFrame, gradelistFragment).commit();
- break;
- case "Add":
- args.putBoolean("update", false);
- args.putBoolean("remove", false);
- gradelistFragment.setArguments(args);
- gradeaddFragment.setArguments(args);
- getSupportFragmentManager().beginTransaction().replace(R.id.topFrame, gradeaddFragment).commit();
- getSupportFragmentManager().beginTransaction().replace(R.id.bottomFrame, gradelistFragment).commit();
- break;
- case "Update":
- args.putBoolean("update", true);
- args.putBoolean("remove", false);
- gradelistFragment.setArguments(args);
- getSupportFragmentManager().beginTransaction().replace(R.id.topFrame, blankFragment).commit();
- getSupportFragmentManager().beginTransaction().replace(R.id.bottomFrame, gradelistFragment).commit();
- break;
- case "Remove":
- args.putBoolean("update", false);
- args.putBoolean("remove", true);
- gradelistFragment.setArguments(args);
- getSupportFragmentManager().beginTransaction().replace(R.id.topFrame, blankFragment).commit();
- getSupportFragmentManager().beginTransaction().replace(R.id.bottomFrame, gradelistFragment).commit();
- break;
- default:
- throw new IllegalStateException("Unexpected value: " + strSubMenuName);
- }
- break;
- case "Departments":
- switch (strSubMenuName) {
- case "List":
- getSupportFragmentManager().beginTransaction().replace(R.id.topFrame, blankFragment).commit();
- args.putBoolean("update", false);
- args.putBoolean("remove", false);
- departmentlistFragment.setArguments(args);
- getSupportFragmentManager().beginTransaction().replace(R.id.bottomFrame, departmentlistFragment).commit();
- break;
- case "Add":
- args.putBoolean("update", false);
- args.putBoolean("remove", false);
- departmentlistFragment.setArguments(args);
- departmentaddFragment.setArguments(args);
- getSupportFragmentManager().beginTransaction().replace(R.id.topFrame, departmentaddFragment).commit();
- getSupportFragmentManager().beginTransaction().replace(R.id.bottomFrame, departmentlistFragment).commit();
- break;
- case "Update":
- args.putBoolean("update", true);
- args.putBoolean("remove", false);
- departmentlistFragment.setArguments(args);
- getSupportFragmentManager().beginTransaction().replace(R.id.topFrame, blankFragment).commit();
- getSupportFragmentManager().beginTransaction().replace(R.id.bottomFrame, departmentlistFragment).commit();
- break;
- case "Remove":
- break;
- default:
- throw new IllegalStateException("Unexpected value: " + strSubMenuName);
- }
- break;
- default:
- throw new IllegalStateException("Unexpected value: " + strMenuName);
- }
- }
- public void ClearTopFrame() {
- FragmentBlank blankFragment = new FragmentBlank();
- getSupportFragmentManager().beginTransaction().replace(R.id.topFrame, blankFragment).commit();
- }
- public void LoadUserList() {
- FragmentUserList userlistFragment = new FragmentUserList();
- userlistFragment.setArguments(args);
- getSupportFragmentManager().beginTransaction().replace(R.id.bottomFrame, userlistFragment).commit();
- }
- public void LoadGradeList() {
- FragmentGradeList gradelistFragment = new FragmentGradeList();
- gradelistFragment.setArguments(args);
- getSupportFragmentManager().beginTransaction().replace(R.id.bottomFrame, gradelistFragment).commit();
- }
- public void LoadDepartmentList() {
- FragmentDepartmentList departmentlistFragment = new FragmentDepartmentList();
- departmentlistFragment.setArguments(args);
- getSupportFragmentManager().beginTransaction().replace(R.id.bottomFrame,departmentlistFragment).commit();
- }
- @Override
- public void onUserUpdate(int id) {
- if (id <= 1) {
- this.Error("Can not update built-in Administrator", false);
- } else {
- FragmentUserUpdate userupdateFragment = new FragmentUserUpdate();
- args.putString("ApiUrl", strApiUrl);
- args.putString("CoName", strCoName);
- args.putInt("record", id);
- userupdateFragment.setArguments(args);
- getSupportFragmentManager().beginTransaction().replace(R.id.topFrame, userupdateFragment).commit();
- }
- }
- @Override
- public void onUserRemove(int id) {
- if (id <= 1) {
- this.Error("Can not remove built-in Administrator", false);
- } else {
- FragmentUserRemove userremoveFragment = new FragmentUserRemove();
- args.putString("ApiUrl", strApiUrl);
- args.putString("CoName", strCoName);
- args.putInt("record", id);
- userremoveFragment.setArguments(args);
- getSupportFragmentManager().beginTransaction().replace(R.id.topFrame, userremoveFragment).commit();
- }
- }
- @Override
- public void onGradeUpdate(int id) {
- if (id <= 1) {
- this.Error("Can not change a built-in grade", false);
- } else {
- FragmentGradeUpdate gradeupdateFragment = new FragmentGradeUpdate();
- args.putString("ApiUrl", strApiUrl);
- args.putString("CoName", strCoName);
- args.putInt("record", id);
- gradeupdateFragment.setArguments(args);
- getSupportFragmentManager().beginTransaction().replace(R.id.topFrame, gradeupdateFragment).commit();
- }
- }
- @Override
- public void onGradeRemove(int id) {
- if (id <= 4) {
- this.Error("Can not remove a built-in grade", false);
- } else {
- FragmentGradeRemove graderemoveFragment = new FragmentGradeRemove();
- args.putString("ApiUrl", strApiUrl);
- args.putString("CoName", strCoName);
- args.putInt("record", id);
- graderemoveFragment.setArguments(args);
- getSupportFragmentManager().beginTransaction().replace(R.id.topFrame, graderemoveFragment).commit();
- }
- }
- @Override
- public void onDepartmentUpdate(int id) {
- }
- @Override
- public void onDepartmentRemove(int id) {
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment