@@ -96,7 +336,8 @@
"cf.first.check.clang-format": "false",
"cidr.known.project.marker": "true",
"com.google.services.firebase.aqiPopupShown": "true",
- "last_opened_file_path": "/home/caleb/ASDV-Android/Assignments",
+ "git-widget-placeholder": "master",
+ "last_opened_file_path": "/home/caleb/ASDV-Android/Assignments/CriminalIntent10",
"settings.editor.selected.configurable": "editor.preferences.appearance"
}
}]]>
diff --git a/Assignments/CriminalIntent10.zip b/Assignments/CriminalIntent10.zip
new file mode 100644
index 0000000..0066a23
Binary files /dev/null and b/Assignments/CriminalIntent10.zip differ
diff --git a/Assignments/FragmentToFragmentMap_CalebFontenot/.gitignore b/Assignments/CriminalIntent10/.gitignore
similarity index 100%
rename from Assignments/FragmentToFragmentMap_CalebFontenot/.gitignore
rename to Assignments/CriminalIntent10/.gitignore
diff --git a/Assignments/FragmentToFragmentMap_CalebFontenot2/.idea/.gitignore b/Assignments/CriminalIntent10/.idea/.gitignore
similarity index 100%
rename from Assignments/FragmentToFragmentMap_CalebFontenot2/.idea/.gitignore
rename to Assignments/CriminalIntent10/.idea/.gitignore
diff --git a/Assignments/CriminalIntent10/.idea/.name b/Assignments/CriminalIntent10/.idea/.name
new file mode 100644
index 0000000..4a49865
--- /dev/null
+++ b/Assignments/CriminalIntent10/.idea/.name
@@ -0,0 +1 @@
+CriminalIntent3
\ No newline at end of file
diff --git a/Assignments/CriminalIntent10/.idea/appInsightsSettings.xml b/Assignments/CriminalIntent10/.idea/appInsightsSettings.xml
new file mode 100644
index 0000000..371f2e2
--- /dev/null
+++ b/Assignments/CriminalIntent10/.idea/appInsightsSettings.xml
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Assignments/fragmentToFragmnetMap/.idea/compiler.xml b/Assignments/CriminalIntent10/.idea/compiler.xml
similarity index 100%
rename from Assignments/fragmentToFragmnetMap/.idea/compiler.xml
rename to Assignments/CriminalIntent10/.idea/compiler.xml
diff --git a/Assignments/fragmentToFragmnetMap/.idea/deploymentTargetDropDown.xml b/Assignments/CriminalIntent10/.idea/deploymentTargetDropDown.xml
similarity index 100%
rename from Assignments/fragmentToFragmnetMap/.idea/deploymentTargetDropDown.xml
rename to Assignments/CriminalIntent10/.idea/deploymentTargetDropDown.xml
diff --git a/Assignments/CriminalIntent10/.idea/discord.xml b/Assignments/CriminalIntent10/.idea/discord.xml
new file mode 100644
index 0000000..d8e9561
--- /dev/null
+++ b/Assignments/CriminalIntent10/.idea/discord.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Assignments/CriminalIntent10/.idea/gradle.xml b/Assignments/CriminalIntent10/.idea/gradle.xml
new file mode 100644
index 0000000..0897082
--- /dev/null
+++ b/Assignments/CriminalIntent10/.idea/gradle.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Assignments/fragmentToFragmnetMap/.idea/migrations.xml b/Assignments/CriminalIntent10/.idea/migrations.xml
similarity index 100%
rename from Assignments/fragmentToFragmnetMap/.idea/migrations.xml
rename to Assignments/CriminalIntent10/.idea/migrations.xml
diff --git a/Assignments/CriminalIntent10/.idea/misc.xml b/Assignments/CriminalIntent10/.idea/misc.xml
new file mode 100644
index 0000000..8978d23
--- /dev/null
+++ b/Assignments/CriminalIntent10/.idea/misc.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Assignments/fragmentToFragmnetMap/.idea/vcs.xml b/Assignments/CriminalIntent10/.idea/vcs.xml
similarity index 100%
rename from Assignments/fragmentToFragmnetMap/.idea/vcs.xml
rename to Assignments/CriminalIntent10/.idea/vcs.xml
diff --git a/Assignments/CriminalIntent10/CriminalIntent.zip b/Assignments/CriminalIntent10/CriminalIntent.zip
new file mode 100644
index 0000000..11b9e69
Binary files /dev/null and b/Assignments/CriminalIntent10/CriminalIntent.zip differ
diff --git a/Assignments/FragmentToFragmentMap_CalebFontenot/app/.gitignore b/Assignments/CriminalIntent10/app/.gitignore
similarity index 100%
rename from Assignments/FragmentToFragmentMap_CalebFontenot/app/.gitignore
rename to Assignments/CriminalIntent10/app/.gitignore
diff --git a/Assignments/CriminalIntent10/app/build.gradle.kts b/Assignments/CriminalIntent10/app/build.gradle.kts
new file mode 100644
index 0000000..799297a
--- /dev/null
+++ b/Assignments/CriminalIntent10/app/build.gradle.kts
@@ -0,0 +1,40 @@
+plugins {
+ alias(libs.plugins.androidApplication)
+}
+
+android {
+ namespace = "asdv.lisset.criminalintent"
+ compileSdk = 34
+
+ defaultConfig {
+ applicationId = "asdv.lisset.criminalintent3"
+ minSdk = 21
+ targetSdk = 34
+ versionCode = 1
+ versionName = "1.0"
+
+ testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
+ }
+
+ buildTypes {
+ release {
+ isMinifyEnabled = false
+ proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro")
+ }
+ }
+ compileOptions {
+ sourceCompatibility = JavaVersion.VERSION_1_8
+ targetCompatibility = JavaVersion.VERSION_1_8
+ }
+}
+
+dependencies {
+
+ implementation(libs.appcompat)
+ implementation(libs.material)
+ implementation(libs.activity)
+ implementation(libs.constraintlayout)
+ testImplementation(libs.junit)
+ androidTestImplementation(libs.ext.junit)
+ androidTestImplementation(libs.espresso.core)
+}
\ No newline at end of file
diff --git a/Assignments/FragmentToFragmentMap_CalebFontenot/app/proguard-rules.pro b/Assignments/CriminalIntent10/app/proguard-rules.pro
similarity index 100%
rename from Assignments/FragmentToFragmentMap_CalebFontenot/app/proguard-rules.pro
rename to Assignments/CriminalIntent10/app/proguard-rules.pro
diff --git a/Assignments/CriminalIntent10/app/src/androidTest/java/asdv/lisset/criminalintent/ExampleInstrumentedTest.java b/Assignments/CriminalIntent10/app/src/androidTest/java/asdv/lisset/criminalintent/ExampleInstrumentedTest.java
new file mode 100644
index 0000000..bf28542
--- /dev/null
+++ b/Assignments/CriminalIntent10/app/src/androidTest/java/asdv/lisset/criminalintent/ExampleInstrumentedTest.java
@@ -0,0 +1,26 @@
+package asdv.lisset.criminalintent;
+
+import android.content.Context;
+
+import androidx.test.platform.app.InstrumentationRegistry;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import static org.junit.Assert.*;
+
+/**
+ * Instrumented test, which will execute on an Android device.
+ *
+ * @see Testing documentation
+ */
+@RunWith(AndroidJUnit4.class)
+public class ExampleInstrumentedTest {
+ @Test
+ public void useAppContext() {
+ // Context of the app under test.
+ Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext();
+ assertEquals("asdv.lisset.criminalintent", appContext.getPackageName());
+ }
+}
\ No newline at end of file
diff --git a/Assignments/CriminalIntent10/app/src/main/AndroidManifest.xml b/Assignments/CriminalIntent10/app/src/main/AndroidManifest.xml
new file mode 100644
index 0000000..cedc1f8
--- /dev/null
+++ b/Assignments/CriminalIntent10/app/src/main/AndroidManifest.xml
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Assignments/CriminalIntent10/app/src/main/java/asdv/lisset/criminalintent/Crime.java b/Assignments/CriminalIntent10/app/src/main/java/asdv/lisset/criminalintent/Crime.java
new file mode 100644
index 0000000..03ab790
--- /dev/null
+++ b/Assignments/CriminalIntent10/app/src/main/java/asdv/lisset/criminalintent/Crime.java
@@ -0,0 +1,43 @@
+package asdv.lisset.criminalintent;
+
+import java.util.Date;
+import java.util.UUID;
+
+public class Crime {
+ private UUID id;
+ private String title;
+ private Date date;
+ private boolean solved;
+ public Crime() {
+ this.id = UUID.randomUUID();
+ this.date = new Date();
+ }
+
+ public UUID getId() {
+ return id;
+ }
+
+ public String getTitle() {
+ return title;
+ }
+
+ public void setTitle(String title) {
+ this.title = title;
+ }
+
+ public Date getDate() {
+ return date;
+ }
+
+ public void setDate(Date date) {
+ this.date = date;
+ }
+
+ public boolean isSolved() {
+ return solved;
+ }
+
+ public void setSolved(boolean solved) {
+ this.solved = solved;
+ }
+}
diff --git a/Assignments/CriminalIntent10/app/src/main/java/asdv/lisset/criminalintent/CrimeFragment.java b/Assignments/CriminalIntent10/app/src/main/java/asdv/lisset/criminalintent/CrimeFragment.java
new file mode 100644
index 0000000..dc05849
--- /dev/null
+++ b/Assignments/CriminalIntent10/app/src/main/java/asdv/lisset/criminalintent/CrimeFragment.java
@@ -0,0 +1,91 @@
+package asdv.lisset.criminalintent;
+
+import android.os.Bundle;
+import androidx.fragment.app.Fragment;
+
+import android.text.Editable;
+import android.text.TextWatcher;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.Button;
+import android.widget.CheckBox;
+import android.widget.CompoundButton;
+import android.widget.EditText;
+
+import java.text.SimpleDateFormat;
+import java.util.UUID;
+
+public class CrimeFragment extends Fragment {
+ private Crime crime;
+ private EditText titleField;
+ private Button dateButton;
+ private CheckBox solvedCheckBox;
+ private static final String ARG_CRIME_ID =
+ "crime_id";
+
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+// crime = new Crime();
+// UUID crimeId = (UUID)
+// getActivity().getIntent()
+// .getSerializableExtra(CrimeActivity.EXTRA_CRIME_ID);
+// crime = CrimeLab.get(getActivity()).getCrime(crimeId);
+ UUID crimeId = (UUID)
+ getArguments().getSerializable(ARG_CRIME_ID);
+ crime =
+ CrimeLab.get(getActivity()).getCrime(crimeId);
+
+ }
+
+ @Override
+ public View onCreateView( LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
+ View v = inflater.inflate(R.layout.fragment_crime, container, false);
+
+ //variables
+ this.dateButton = v.findViewById(R.id.button_crime_date);
+ this.solvedCheckBox = v.findViewById(R.id.checkBox_crime_solved);
+ this.titleField= v.findViewById(R.id.edit_text_crime_title);
+ //date button
+ SimpleDateFormat dt = new SimpleDateFormat("EEEE, MMMM d, yyyy");
+ String s = dt.format(this.crime.getDate());
+ this.dateButton.setText(s);
+ this.dateButton.setEnabled(false);
+
+ this.titleField.setText(crime.getTitle());
+ this.solvedCheckBox.setChecked(crime.isSolved());
+ //checkbox
+ this.solvedCheckBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
+ @Override
+ public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
+ CrimeFragment.this.crime.setSolved(isChecked);
+ }
+ });
+ titleField.addTextChangedListener(new TextWatcher() {
+ @Override
+ public void beforeTextChanged(CharSequence s, int start, int count, int after) {
+ //left blank
+ }
+ @Override
+ public void onTextChanged(CharSequence s, int start, int before, int count) {
+ crime.setTitle(s.toString());
+ }
+ @Override
+ public void afterTextChanged(Editable s) {
+ //blank on purpose
+ }
+
+ });
+ return v;
+ }
+
+ public static CrimeFragment newInstance(UUID crimeId){
+ Bundle args = new Bundle();
+ args.putSerializable(ARG_CRIME_ID, crimeId);
+ CrimeFragment fragment = new CrimeFragment();
+ fragment.setArguments(args);
+ return fragment;
+
+ }
+}
\ No newline at end of file
diff --git a/Assignments/CriminalIntent10/app/src/main/java/asdv/lisset/criminalintent/CrimeLab.java b/Assignments/CriminalIntent10/app/src/main/java/asdv/lisset/criminalintent/CrimeLab.java
new file mode 100644
index 0000000..a5fc2f9
--- /dev/null
+++ b/Assignments/CriminalIntent10/app/src/main/java/asdv/lisset/criminalintent/CrimeLab.java
@@ -0,0 +1,39 @@
+package asdv.lisset.criminalintent;
+
+import android.content.Context;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.UUID;
+
+public class CrimeLab {
+ private static CrimeLab crimeLab;
+ private List crimes;
+ public static CrimeLab get(Context context) {
+ if (crimeLab == null) {
+ crimeLab = new CrimeLab(context);
+ }
+ return crimeLab;
+ }
+ private CrimeLab(Context context) {
+ crimes = new ArrayList<>();
+ for (int i =0; i < 100; ++i)
+ {
+ Crime crime = new Crime();
+ crime.setTitle("Crime # " + i);
+ crime.setSolved(i % 2 == 0); //every other one
+ crimes.add(crime);
+ }
+ }
+ public List getCrimes() {
+ return crimes;
+ }
+ public Crime getCrime(UUID id) {
+ for (Crime crime : crimes) {
+ if (crime.getId().equals(id)) {
+ return crime;
+ }
+ }
+ return null;
+ }
+}
diff --git a/Assignments/CriminalIntent10/app/src/main/java/asdv/lisset/criminalintent/CrimeListActivity.java b/Assignments/CriminalIntent10/app/src/main/java/asdv/lisset/criminalintent/CrimeListActivity.java
new file mode 100644
index 0000000..53932f2
--- /dev/null
+++ b/Assignments/CriminalIntent10/app/src/main/java/asdv/lisset/criminalintent/CrimeListActivity.java
@@ -0,0 +1,10 @@
+package asdv.lisset.criminalintent;
+
+import androidx.fragment.app.Fragment;
+
+public class CrimeListActivity extends SingleFragmentActivity{
+ @Override
+ protected Fragment createFragment() {
+ return new CrimeListFragment();
+ }
+}
diff --git a/Assignments/CriminalIntent10/app/src/main/java/asdv/lisset/criminalintent/CrimeListFragment.java b/Assignments/CriminalIntent10/app/src/main/java/asdv/lisset/criminalintent/CrimeListFragment.java
new file mode 100644
index 0000000..9b7e552
--- /dev/null
+++ b/Assignments/CriminalIntent10/app/src/main/java/asdv/lisset/criminalintent/CrimeListFragment.java
@@ -0,0 +1,117 @@
+package asdv.lisset.criminalintent;
+
+import android.content.Intent;
+import android.os.Bundle;
+import android.text.Layout;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ImageView;
+import android.widget.TextView;
+import android.widget.Toast;
+
+import androidx.annotation.NonNull;
+import androidx.fragment.app.Fragment;
+import androidx.recyclerview.widget.LinearLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
+
+import java.util.List;
+
+public class CrimeListFragment extends Fragment {
+ private RecyclerView crimeRecyclerView;
+ private CrimeAdapter adapter;
+ private ImageView solvedImageView;
+ private void updateUI(){
+ CrimeLab crimeLab = CrimeLab.get(getActivity());
+ List crimes = crimeLab.getCrimes();
+ if(this.adapter == null) {
+ adapter = new CrimeAdapter(crimes);
+ crimeRecyclerView.setAdapter(adapter);
+ }
+ else {
+// adapter.notifyItemChanged(1);
+ this.adapter.notifyDataSetChanged();
+ }
+ }
+ @Override
+ public View onCreateView(LayoutInflater inflater,
+ ViewGroup container,
+ Bundle savedInstanceState) {
+ View view =
+ inflater.inflate(R.layout.fragment_crime_list,
+ container, false);
+ crimeRecyclerView = (RecyclerView) view
+ .findViewById(R.id.crime_recycler_view);
+ crimeRecyclerView.setLayoutManager(
+ new LinearLayoutManager(getActivity()));
+ updateUI();
+ return view;
+ }
+
+ @Override
+ public void onResume() {
+ super.onResume();
+ updateUI();
+ }
+
+ //CRIME HOLDER
+ private class CrimeHolder extends RecyclerView.ViewHolder implements View.OnClickListener{
+ private Crime crime;
+ private TextView titleTextView;
+ private TextView dateTextView;
+ public void bind(Crime crime){
+ this.crime = crime;
+ titleTextView.setText(this.crime.getTitle());
+ dateTextView.setText(this.crime.getDate().toString());
+ solvedImageView.setVisibility(crime.isSolved()? View.VISIBLE : View.GONE);
+ }
+ public CrimeHolder(LayoutInflater inflater, ViewGroup parent){
+ super(inflater.inflate(R.layout.list_item_crime, parent ,false));
+ itemView.setOnClickListener(this);
+ titleTextView = itemView.findViewById(R.id.crime_title);
+ dateTextView = itemView.findViewById(R.id.crime_date);
+ solvedImageView =itemView.findViewById(R.id.imageView_green_cross);
+ }
+
+ @Override
+ public void onClick(View v) {
+ Intent intent = CrimePagerActivity.newIntent(getActivity(),
+ crime.getId());
+ startActivity(intent);
+ }
+// Intent intent = new Intent(getActivity(), CrimeActivity.class);
+// startActivity(intent);
+// Toast.makeText(getActivity(),
+// this.crime.getTitle() + " clicked!",
+// Toast.LENGTH_SHORT)
+// .show();
+
+ }
+ //ADAPTER
+ private class CrimeAdapter extends RecyclerView.Adapter{
+ private List crimes;
+
+ public CrimeAdapter(List crimes) {
+ this.crimes = crimes;
+ }
+
+ @NonNull
+ @Override
+ public CrimeHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+ LayoutInflater layoutInflater = LayoutInflater.from(getActivity());
+ return new CrimeHolder(layoutInflater, parent);
+ }
+
+ @Override
+ public void onBindViewHolder(@NonNull CrimeHolder holder, int position) {
+ Crime crime = crimes.get(position);
+ holder.bind(crime);
+ }
+
+ @Override
+ public int getItemCount() {
+ return crimes.size();
+ }
+
+ }
+}
diff --git a/Assignments/CriminalIntent10/app/src/main/java/asdv/lisset/criminalintent/CrimePagerActivity.java b/Assignments/CriminalIntent10/app/src/main/java/asdv/lisset/criminalintent/CrimePagerActivity.java
new file mode 100644
index 0000000..0d2420f
--- /dev/null
+++ b/Assignments/CriminalIntent10/app/src/main/java/asdv/lisset/criminalintent/CrimePagerActivity.java
@@ -0,0 +1,59 @@
+package asdv.lisset.criminalintent;
+
+import android.content.Context;
+import android.content.Intent;
+import android.os.Bundle;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.fragment.app.Fragment;
+import androidx.fragment.app.FragmentManager;
+import androidx.fragment.app.FragmentStatePagerAdapter;
+import androidx.viewpager.widget.ViewPager;
+
+import java.util.List;
+import java.util.UUID;
+
+public class CrimePagerActivity extends AppCompatActivity {
+ private static final String EXTRA_CRIME_ID = "com.calebfontenot.android.CriminalIntent.crime_id";
+ private ViewPager mViewPager;
+ private List mCrimes;
+
+ public static Intent newIntent(Context packageContext, UUID crimeId) {
+ Intent intent = new Intent(packageContext, CrimePagerActivity.class);
+ intent.putExtra(EXTRA_CRIME_ID, crimeId);
+ return intent;
+ }
+
+ @Override
+ protected void onCreate(@Nullable Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_crime_pager);
+ UUID crimeId = (UUID) getIntent().getSerializableExtra(EXTRA_CRIME_ID);
+
+ mViewPager = (ViewPager) findViewById(R.id.crime_view_pager);
+ mCrimes = CrimeLab.get(this).getCrimes();
+ FragmentManager fragmentManager = getSupportFragmentManager();
+ for (int i = 0; i < mCrimes.size(); ++i) {
+ UUID currentID = mCrimes.get(i).getId();
+ if (currentID.equals(crimeId)) {
+ mViewPager.setCurrentItem(i);
+ break;
+ }
+ }
+ mViewPager.setAdapter(new FragmentStatePagerAdapter(fragmentManager) {
+ @Override
+ public int getCount() {
+ return mCrimes.size();
+ }
+
+ @NonNull
+ @Override
+ public Fragment getItem(int position) {
+ Crime crime = mCrimes.get(position);
+ return CrimeFragment.newInstance(crime.getId());
+ }
+ });
+ }
+}
diff --git a/Assignments/CriminalIntent10/app/src/main/java/asdv/lisset/criminalintent/CrimePagerAdapter.java b/Assignments/CriminalIntent10/app/src/main/java/asdv/lisset/criminalintent/CrimePagerAdapter.java
new file mode 100644
index 0000000..6b9f903
--- /dev/null
+++ b/Assignments/CriminalIntent10/app/src/main/java/asdv/lisset/criminalintent/CrimePagerAdapter.java
@@ -0,0 +1,24 @@
+package asdv.lisset.criminalintent;
+
+import androidx.annotation.NonNull;
+import androidx.fragment.app.Fragment;
+import androidx.fragment.app.FragmentManager;
+import androidx.fragment.app.FragmentStatePagerAdapter;
+
+public class CrimePagerAdapter extends FragmentStatePagerAdapter {
+
+ public CrimePagerAdapter(@NonNull FragmentManager fm) {
+ super(fm);
+ }
+
+ @NonNull
+ @Override
+ public Fragment getItem(int position) {
+ return null;
+ }
+
+ @Override
+ public int getCount() {
+ return 0;
+ }
+}
diff --git a/Assignments/CriminalIntent10/app/src/main/java/asdv/lisset/criminalintent/DatePickerFragment.java b/Assignments/CriminalIntent10/app/src/main/java/asdv/lisset/criminalintent/DatePickerFragment.java
new file mode 100644
index 0000000..05a0acd
--- /dev/null
+++ b/Assignments/CriminalIntent10/app/src/main/java/asdv/lisset/criminalintent/DatePickerFragment.java
@@ -0,0 +1,7 @@
+package asdv.lisset.criminalintent;
+
+import androidx.fragment.app.DialogFragment;
+
+public class DatePickerFragment extends DialogFragment {
+
+}
diff --git a/Assignments/CriminalIntent10/app/src/main/java/asdv/lisset/criminalintent/SingleFragmentActivity.java b/Assignments/CriminalIntent10/app/src/main/java/asdv/lisset/criminalintent/SingleFragmentActivity.java
new file mode 100644
index 0000000..585d634
--- /dev/null
+++ b/Assignments/CriminalIntent10/app/src/main/java/asdv/lisset/criminalintent/SingleFragmentActivity.java
@@ -0,0 +1,28 @@
+package asdv.lisset.criminalintent;
+
+import android.os.Bundle;
+
+import androidx.annotation.Nullable;
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.fragment.app.Fragment;
+import androidx.fragment.app.FragmentManager;
+
+public abstract class SingleFragmentActivity extends AppCompatActivity {
+ protected abstract Fragment createFragment();
+
+ @Override
+ protected void onCreate(@Nullable Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+
+ setContentView(R.layout.activity_fragment);
+ FragmentManager fm =
+ getSupportFragmentManager();
+ Fragment fragment =
+ fm.findFragmentById(R.id.fragment_container);
+ if (fragment == null) {
+ fragment = createFragment();
+ fm.beginTransaction().add(
+ R.id.fragment_container, fragment).commit();
+ }
+ }
+}
diff --git a/Assignments/FragmentToFragmentMap_CalebFontenot/app/src/main/res/drawable-v24/ic_launcher_foreground.xml b/Assignments/CriminalIntent10/app/src/main/res/drawable-v24/ic_launcher_foreground.xml
similarity index 100%
rename from Assignments/FragmentToFragmentMap_CalebFontenot/app/src/main/res/drawable-v24/ic_launcher_foreground.xml
rename to Assignments/CriminalIntent10/app/src/main/res/drawable-v24/ic_launcher_foreground.xml
diff --git a/Assignments/FragmentToFragmentMap_CalebFontenot/app/src/main/res/drawable/ic_launcher_background.xml b/Assignments/CriminalIntent10/app/src/main/res/drawable/ic_launcher_background.xml
similarity index 100%
rename from Assignments/FragmentToFragmentMap_CalebFontenot/app/src/main/res/drawable/ic_launcher_background.xml
rename to Assignments/CriminalIntent10/app/src/main/res/drawable/ic_launcher_background.xml
diff --git a/Assignments/CriminalIntent10/app/src/main/res/layout-land/fragment_crime.xml b/Assignments/CriminalIntent10/app/src/main/res/layout-land/fragment_crime.xml
new file mode 100644
index 0000000..52f2f89
--- /dev/null
+++ b/Assignments/CriminalIntent10/app/src/main/res/layout-land/fragment_crime.xml
@@ -0,0 +1,47 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Assignments/CriminalIntent10/app/src/main/res/layout/activity_crime_pager.xml b/Assignments/CriminalIntent10/app/src/main/res/layout/activity_crime_pager.xml
new file mode 100644
index 0000000..18485b5
--- /dev/null
+++ b/Assignments/CriminalIntent10/app/src/main/res/layout/activity_crime_pager.xml
@@ -0,0 +1,7 @@
+
+
+
+
\ No newline at end of file
diff --git a/Assignments/CriminalIntent10/app/src/main/res/layout/activity_fragment.xml b/Assignments/CriminalIntent10/app/src/main/res/layout/activity_fragment.xml
new file mode 100644
index 0000000..7dcc132
--- /dev/null
+++ b/Assignments/CriminalIntent10/app/src/main/res/layout/activity_fragment.xml
@@ -0,0 +1,10 @@
+
+
+
+
\ No newline at end of file
diff --git a/Assignments/CriminalIntent10/app/src/main/res/layout/fragment_crime.xml b/Assignments/CriminalIntent10/app/src/main/res/layout/fragment_crime.xml
new file mode 100644
index 0000000..8b54b57
--- /dev/null
+++ b/Assignments/CriminalIntent10/app/src/main/res/layout/fragment_crime.xml
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Assignments/CriminalIntent10/app/src/main/res/layout/fragment_crime_list.xml b/Assignments/CriminalIntent10/app/src/main/res/layout/fragment_crime_list.xml
new file mode 100644
index 0000000..22cbfca
--- /dev/null
+++ b/Assignments/CriminalIntent10/app/src/main/res/layout/fragment_crime_list.xml
@@ -0,0 +1,5 @@
+
\ No newline at end of file
diff --git a/Assignments/CriminalIntent10/app/src/main/res/layout/list_item_crime.xml b/Assignments/CriminalIntent10/app/src/main/res/layout/list_item_crime.xml
new file mode 100644
index 0000000..945c15c
--- /dev/null
+++ b/Assignments/CriminalIntent10/app/src/main/res/layout/list_item_crime.xml
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Assignments/FragmentToFragmentMap_CalebFontenot/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/Assignments/CriminalIntent10/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
similarity index 100%
rename from Assignments/FragmentToFragmentMap_CalebFontenot/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
rename to Assignments/CriminalIntent10/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
diff --git a/Assignments/FragmentToFragmentMap_CalebFontenot/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/Assignments/CriminalIntent10/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
similarity index 100%
rename from Assignments/FragmentToFragmentMap_CalebFontenot/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
rename to Assignments/CriminalIntent10/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
diff --git a/Assignments/FragmentToFragmentMap_CalebFontenot/app/src/main/res/mipmap-hdpi/ic_launcher.webp b/Assignments/CriminalIntent10/app/src/main/res/mipmap-hdpi/ic_launcher.webp
similarity index 100%
rename from Assignments/FragmentToFragmentMap_CalebFontenot/app/src/main/res/mipmap-hdpi/ic_launcher.webp
rename to Assignments/CriminalIntent10/app/src/main/res/mipmap-hdpi/ic_launcher.webp
diff --git a/Assignments/FragmentToFragmentMap_CalebFontenot/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp b/Assignments/CriminalIntent10/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp
similarity index 100%
rename from Assignments/FragmentToFragmentMap_CalebFontenot/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp
rename to Assignments/CriminalIntent10/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp
diff --git a/Assignments/FragmentToFragmentMap_CalebFontenot/app/src/main/res/mipmap-mdpi/ic_launcher.webp b/Assignments/CriminalIntent10/app/src/main/res/mipmap-mdpi/ic_launcher.webp
similarity index 100%
rename from Assignments/FragmentToFragmentMap_CalebFontenot/app/src/main/res/mipmap-mdpi/ic_launcher.webp
rename to Assignments/CriminalIntent10/app/src/main/res/mipmap-mdpi/ic_launcher.webp
diff --git a/Assignments/FragmentToFragmentMap_CalebFontenot/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp b/Assignments/CriminalIntent10/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp
similarity index 100%
rename from Assignments/FragmentToFragmentMap_CalebFontenot/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp
rename to Assignments/CriminalIntent10/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp
diff --git a/Assignments/FragmentToFragmentMap_CalebFontenot/app/src/main/res/mipmap-xhdpi/ic_launcher.webp b/Assignments/CriminalIntent10/app/src/main/res/mipmap-xhdpi/ic_launcher.webp
similarity index 100%
rename from Assignments/FragmentToFragmentMap_CalebFontenot/app/src/main/res/mipmap-xhdpi/ic_launcher.webp
rename to Assignments/CriminalIntent10/app/src/main/res/mipmap-xhdpi/ic_launcher.webp
diff --git a/Assignments/FragmentToFragmentMap_CalebFontenot/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp b/Assignments/CriminalIntent10/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp
similarity index 100%
rename from Assignments/FragmentToFragmentMap_CalebFontenot/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp
rename to Assignments/CriminalIntent10/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp
diff --git a/Assignments/FragmentToFragmentMap_CalebFontenot/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp b/Assignments/CriminalIntent10/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp
similarity index 100%
rename from Assignments/FragmentToFragmentMap_CalebFontenot/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp
rename to Assignments/CriminalIntent10/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp
diff --git a/Assignments/FragmentToFragmentMap_CalebFontenot/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp b/Assignments/CriminalIntent10/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp
similarity index 100%
rename from Assignments/FragmentToFragmentMap_CalebFontenot/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp
rename to Assignments/CriminalIntent10/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp
diff --git a/Assignments/FragmentToFragmentMap_CalebFontenot/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp b/Assignments/CriminalIntent10/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp
similarity index 100%
rename from Assignments/FragmentToFragmentMap_CalebFontenot/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp
rename to Assignments/CriminalIntent10/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp
diff --git a/Assignments/FragmentToFragmentMap_CalebFontenot/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp b/Assignments/CriminalIntent10/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp
similarity index 100%
rename from Assignments/FragmentToFragmentMap_CalebFontenot/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp
rename to Assignments/CriminalIntent10/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp
diff --git a/Assignments/CriminalIntent10/app/src/main/res/values-night/themes.xml b/Assignments/CriminalIntent10/app/src/main/res/values-night/themes.xml
new file mode 100644
index 0000000..bd56ea6
--- /dev/null
+++ b/Assignments/CriminalIntent10/app/src/main/res/values-night/themes.xml
@@ -0,0 +1,7 @@
+
+
+
+
\ No newline at end of file
diff --git a/Assignments/FragmentToFragmentMap_CalebFontenot/app/src/main/res/values/colors.xml b/Assignments/CriminalIntent10/app/src/main/res/values/colors.xml
similarity index 100%
rename from Assignments/FragmentToFragmentMap_CalebFontenot/app/src/main/res/values/colors.xml
rename to Assignments/CriminalIntent10/app/src/main/res/values/colors.xml
diff --git a/Assignments/CriminalIntent10/app/src/main/res/values/strings.xml b/Assignments/CriminalIntent10/app/src/main/res/values/strings.xml
new file mode 100644
index 0000000..69c50ac
--- /dev/null
+++ b/Assignments/CriminalIntent10/app/src/main/res/values/strings.xml
@@ -0,0 +1,9 @@
+
+ Criminal Intent
+
+ Enter a title for the crime.
+ TITLE
+ DETAILS
+ Solved
+ Date of crime:
+
\ No newline at end of file
diff --git a/Assignments/CriminalIntent10/app/src/main/res/values/themes.xml b/Assignments/CriminalIntent10/app/src/main/res/values/themes.xml
new file mode 100644
index 0000000..447dbe6
--- /dev/null
+++ b/Assignments/CriminalIntent10/app/src/main/res/values/themes.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Assignments/FragmentToFragmentMap_CalebFontenot/app/src/main/res/xml/backup_rules.xml b/Assignments/CriminalIntent10/app/src/main/res/xml/backup_rules.xml
similarity index 100%
rename from Assignments/FragmentToFragmentMap_CalebFontenot/app/src/main/res/xml/backup_rules.xml
rename to Assignments/CriminalIntent10/app/src/main/res/xml/backup_rules.xml
diff --git a/Assignments/FragmentToFragmentMap_CalebFontenot/app/src/main/res/xml/data_extraction_rules.xml b/Assignments/CriminalIntent10/app/src/main/res/xml/data_extraction_rules.xml
similarity index 100%
rename from Assignments/FragmentToFragmentMap_CalebFontenot/app/src/main/res/xml/data_extraction_rules.xml
rename to Assignments/CriminalIntent10/app/src/main/res/xml/data_extraction_rules.xml
diff --git a/Assignments/CriminalIntent10/app/src/test/java/asdv/lisset/criminalintent/ExampleUnitTest.java b/Assignments/CriminalIntent10/app/src/test/java/asdv/lisset/criminalintent/ExampleUnitTest.java
new file mode 100644
index 0000000..72c2210
--- /dev/null
+++ b/Assignments/CriminalIntent10/app/src/test/java/asdv/lisset/criminalintent/ExampleUnitTest.java
@@ -0,0 +1,17 @@
+package asdv.lisset.criminalintent;
+
+import org.junit.Test;
+
+import static org.junit.Assert.*;
+
+/**
+ * Example local unit test, which will execute on the development machine (host).
+ *
+ * @see Testing documentation
+ */
+public class ExampleUnitTest {
+ @Test
+ public void addition_isCorrect() {
+ assertEquals(4, 2 + 2);
+ }
+}
\ No newline at end of file
diff --git a/Assignments/CriminalIntent10/build.gradle.kts b/Assignments/CriminalIntent10/build.gradle.kts
new file mode 100644
index 0000000..2bbd2a9
--- /dev/null
+++ b/Assignments/CriminalIntent10/build.gradle.kts
@@ -0,0 +1,4 @@
+// Top-level build file where you can add configuration options common to all sub-projects/modules.
+plugins {
+ alias(libs.plugins.androidApplication) apply false
+}
\ No newline at end of file
diff --git a/Assignments/FragmentToFragmentMap_CalebFontenot/gradle.properties b/Assignments/CriminalIntent10/gradle.properties
similarity index 100%
rename from Assignments/FragmentToFragmentMap_CalebFontenot/gradle.properties
rename to Assignments/CriminalIntent10/gradle.properties
diff --git a/Assignments/CriminalIntent10/gradle/libs.versions.toml b/Assignments/CriminalIntent10/gradle/libs.versions.toml
new file mode 100644
index 0000000..3f8f559
--- /dev/null
+++ b/Assignments/CriminalIntent10/gradle/libs.versions.toml
@@ -0,0 +1,22 @@
+[versions]
+agp = "8.3.0"
+junit = "4.13.2"
+junitVersion = "1.1.5"
+espressoCore = "3.5.1"
+appcompat = "1.6.1"
+material = "1.11.0"
+activity = "1.8.2"
+constraintlayout = "2.1.4"
+
+[libraries]
+junit = { group = "junit", name = "junit", version.ref = "junit" }
+ext-junit = { group = "androidx.test.ext", name = "junit", version.ref = "junitVersion" }
+espresso-core = { group = "androidx.test.espresso", name = "espresso-core", version.ref = "espressoCore" }
+appcompat = { group = "androidx.appcompat", name = "appcompat", version.ref = "appcompat" }
+material = { group = "com.google.android.material", name = "material", version.ref = "material" }
+activity = { group = "androidx.activity", name = "activity", version.ref = "activity" }
+constraintlayout = { group = "androidx.constraintlayout", name = "constraintlayout", version.ref = "constraintlayout" }
+
+[plugins]
+androidApplication = { id = "com.android.application", version.ref = "agp" }
+
diff --git a/Assignments/FragmentToFragmentMap_CalebFontenot/gradle/wrapper/gradle-wrapper.jar b/Assignments/CriminalIntent10/gradle/wrapper/gradle-wrapper.jar
similarity index 100%
rename from Assignments/FragmentToFragmentMap_CalebFontenot/gradle/wrapper/gradle-wrapper.jar
rename to Assignments/CriminalIntent10/gradle/wrapper/gradle-wrapper.jar
diff --git a/Assignments/CriminalIntent10/gradle/wrapper/gradle-wrapper.properties b/Assignments/CriminalIntent10/gradle/wrapper/gradle-wrapper.properties
new file mode 100644
index 0000000..1adc8dd
--- /dev/null
+++ b/Assignments/CriminalIntent10/gradle/wrapper/gradle-wrapper.properties
@@ -0,0 +1,6 @@
+#Wed Feb 14 09:55:47 CST 2024
+distributionBase=GRADLE_USER_HOME
+distributionPath=wrapper/dists
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.4-bin.zip
+zipStoreBase=GRADLE_USER_HOME
+zipStorePath=wrapper/dists
diff --git a/Assignments/FragmentToFragmentMap_CalebFontenot/gradlew b/Assignments/CriminalIntent10/gradlew
similarity index 100%
rename from Assignments/FragmentToFragmentMap_CalebFontenot/gradlew
rename to Assignments/CriminalIntent10/gradlew
diff --git a/Assignments/FragmentToFragmentMap_CalebFontenot/gradlew.bat b/Assignments/CriminalIntent10/gradlew.bat
similarity index 100%
rename from Assignments/FragmentToFragmentMap_CalebFontenot/gradlew.bat
rename to Assignments/CriminalIntent10/gradlew.bat
diff --git a/Assignments/CriminalIntent10/settings.gradle.kts b/Assignments/CriminalIntent10/settings.gradle.kts
new file mode 100644
index 0000000..40eea09
--- /dev/null
+++ b/Assignments/CriminalIntent10/settings.gradle.kts
@@ -0,0 +1,23 @@
+pluginManagement {
+ repositories {
+ google {
+ content {
+ includeGroupByRegex("com\\.android.*")
+ includeGroupByRegex("com\\.google.*")
+ includeGroupByRegex("androidx.*")
+ }
+ }
+ mavenCentral()
+ gradlePluginPortal()
+ }
+}
+dependencyResolutionManagement {
+ repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
+ repositories {
+ google()
+ mavenCentral()
+ }
+}
+
+rootProject.name = "CriminalIntent3"
+include(":app")
diff --git a/Assignments/CriminalIntent12.zip b/Assignments/CriminalIntent12.zip
new file mode 100644
index 0000000..ca905c6
Binary files /dev/null and b/Assignments/CriminalIntent12.zip differ
diff --git a/Assignments/FragmentToFragmentMap_CalebFontenot2/.gitignore b/Assignments/CriminalIntent12/.gitignore
similarity index 100%
rename from Assignments/FragmentToFragmentMap_CalebFontenot2/.gitignore
rename to Assignments/CriminalIntent12/.gitignore
diff --git a/Assignments/fragmentToFragmnetMap/.idea/.gitignore b/Assignments/CriminalIntent12/.idea/.gitignore
similarity index 100%
rename from Assignments/fragmentToFragmnetMap/.idea/.gitignore
rename to Assignments/CriminalIntent12/.idea/.gitignore
diff --git a/Assignments/CriminalIntent12/.idea/.name b/Assignments/CriminalIntent12/.idea/.name
new file mode 100644
index 0000000..4a49865
--- /dev/null
+++ b/Assignments/CriminalIntent12/.idea/.name
@@ -0,0 +1 @@
+CriminalIntent3
\ No newline at end of file
diff --git a/Assignments/CriminalIntent12/.idea/compiler.xml b/Assignments/CriminalIntent12/.idea/compiler.xml
new file mode 100644
index 0000000..b589d56
--- /dev/null
+++ b/Assignments/CriminalIntent12/.idea/compiler.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Assignments/CriminalIntent12/.idea/deploymentTargetDropDown.xml b/Assignments/CriminalIntent12/.idea/deploymentTargetDropDown.xml
new file mode 100644
index 0000000..3086d1c
--- /dev/null
+++ b/Assignments/CriminalIntent12/.idea/deploymentTargetDropDown.xml
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Assignments/CriminalIntent12/.idea/discord.xml b/Assignments/CriminalIntent12/.idea/discord.xml
new file mode 100644
index 0000000..d8e9561
--- /dev/null
+++ b/Assignments/CriminalIntent12/.idea/discord.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Assignments/CriminalIntent12/.idea/gradle.xml b/Assignments/CriminalIntent12/.idea/gradle.xml
new file mode 100644
index 0000000..0897082
--- /dev/null
+++ b/Assignments/CriminalIntent12/.idea/gradle.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Assignments/CriminalIntent12/.idea/migrations.xml b/Assignments/CriminalIntent12/.idea/migrations.xml
new file mode 100644
index 0000000..f8051a6
--- /dev/null
+++ b/Assignments/CriminalIntent12/.idea/migrations.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Assignments/CriminalIntent12/.idea/misc.xml b/Assignments/CriminalIntent12/.idea/misc.xml
new file mode 100644
index 0000000..8978d23
--- /dev/null
+++ b/Assignments/CriminalIntent12/.idea/misc.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Assignments/CriminalIntent12/.idea/vcs.xml b/Assignments/CriminalIntent12/.idea/vcs.xml
new file mode 100644
index 0000000..b2bdec2
--- /dev/null
+++ b/Assignments/CriminalIntent12/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Assignments/CriminalIntent12/CriminalIntent.zip b/Assignments/CriminalIntent12/CriminalIntent.zip
new file mode 100644
index 0000000..11b9e69
Binary files /dev/null and b/Assignments/CriminalIntent12/CriminalIntent.zip differ
diff --git a/Assignments/FragmentToFragmentMap_CalebFontenot2/app/.gitignore b/Assignments/CriminalIntent12/app/.gitignore
similarity index 100%
rename from Assignments/FragmentToFragmentMap_CalebFontenot2/app/.gitignore
rename to Assignments/CriminalIntent12/app/.gitignore
diff --git a/Assignments/CriminalIntent12/app/build.gradle.kts b/Assignments/CriminalIntent12/app/build.gradle.kts
new file mode 100644
index 0000000..799297a
--- /dev/null
+++ b/Assignments/CriminalIntent12/app/build.gradle.kts
@@ -0,0 +1,40 @@
+plugins {
+ alias(libs.plugins.androidApplication)
+}
+
+android {
+ namespace = "asdv.lisset.criminalintent"
+ compileSdk = 34
+
+ defaultConfig {
+ applicationId = "asdv.lisset.criminalintent3"
+ minSdk = 21
+ targetSdk = 34
+ versionCode = 1
+ versionName = "1.0"
+
+ testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
+ }
+
+ buildTypes {
+ release {
+ isMinifyEnabled = false
+ proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro")
+ }
+ }
+ compileOptions {
+ sourceCompatibility = JavaVersion.VERSION_1_8
+ targetCompatibility = JavaVersion.VERSION_1_8
+ }
+}
+
+dependencies {
+
+ implementation(libs.appcompat)
+ implementation(libs.material)
+ implementation(libs.activity)
+ implementation(libs.constraintlayout)
+ testImplementation(libs.junit)
+ androidTestImplementation(libs.ext.junit)
+ androidTestImplementation(libs.espresso.core)
+}
\ No newline at end of file
diff --git a/Assignments/FragmentToFragmentMap_CalebFontenot2/app/proguard-rules.pro b/Assignments/CriminalIntent12/app/proguard-rules.pro
similarity index 100%
rename from Assignments/FragmentToFragmentMap_CalebFontenot2/app/proguard-rules.pro
rename to Assignments/CriminalIntent12/app/proguard-rules.pro
diff --git a/Assignments/CriminalIntent12/app/src/androidTest/java/asdv/lisset/criminalintent/ExampleInstrumentedTest.java b/Assignments/CriminalIntent12/app/src/androidTest/java/asdv/lisset/criminalintent/ExampleInstrumentedTest.java
new file mode 100644
index 0000000..bf28542
--- /dev/null
+++ b/Assignments/CriminalIntent12/app/src/androidTest/java/asdv/lisset/criminalintent/ExampleInstrumentedTest.java
@@ -0,0 +1,26 @@
+package asdv.lisset.criminalintent;
+
+import android.content.Context;
+
+import androidx.test.platform.app.InstrumentationRegistry;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import static org.junit.Assert.*;
+
+/**
+ * Instrumented test, which will execute on an Android device.
+ *
+ * @see Testing documentation
+ */
+@RunWith(AndroidJUnit4.class)
+public class ExampleInstrumentedTest {
+ @Test
+ public void useAppContext() {
+ // Context of the app under test.
+ Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext();
+ assertEquals("asdv.lisset.criminalintent", appContext.getPackageName());
+ }
+}
\ No newline at end of file
diff --git a/Assignments/CriminalIntent12/app/src/main/AndroidManifest.xml b/Assignments/CriminalIntent12/app/src/main/AndroidManifest.xml
new file mode 100644
index 0000000..dfa07a7
--- /dev/null
+++ b/Assignments/CriminalIntent12/app/src/main/AndroidManifest.xml
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Assignments/CriminalIntent12/app/src/main/java/asdv/lisset/criminalintent/Crime.java b/Assignments/CriminalIntent12/app/src/main/java/asdv/lisset/criminalintent/Crime.java
new file mode 100644
index 0000000..03ab790
--- /dev/null
+++ b/Assignments/CriminalIntent12/app/src/main/java/asdv/lisset/criminalintent/Crime.java
@@ -0,0 +1,43 @@
+package asdv.lisset.criminalintent;
+
+import java.util.Date;
+import java.util.UUID;
+
+public class Crime {
+ private UUID id;
+ private String title;
+ private Date date;
+ private boolean solved;
+ public Crime() {
+ this.id = UUID.randomUUID();
+ this.date = new Date();
+ }
+
+ public UUID getId() {
+ return id;
+ }
+
+ public String getTitle() {
+ return title;
+ }
+
+ public void setTitle(String title) {
+ this.title = title;
+ }
+
+ public Date getDate() {
+ return date;
+ }
+
+ public void setDate(Date date) {
+ this.date = date;
+ }
+
+ public boolean isSolved() {
+ return solved;
+ }
+
+ public void setSolved(boolean solved) {
+ this.solved = solved;
+ }
+}
diff --git a/Assignments/CriminalIntent12/app/src/main/java/asdv/lisset/criminalintent/CrimeFragment.java b/Assignments/CriminalIntent12/app/src/main/java/asdv/lisset/criminalintent/CrimeFragment.java
new file mode 100644
index 0000000..fdcc576
--- /dev/null
+++ b/Assignments/CriminalIntent12/app/src/main/java/asdv/lisset/criminalintent/CrimeFragment.java
@@ -0,0 +1,125 @@
+package asdv.lisset.criminalintent;
+
+import android.app.Activity;
+import android.content.Intent;
+import android.os.Bundle;
+import androidx.fragment.app.Fragment;
+import androidx.fragment.app.FragmentManager;
+
+import android.text.Editable;
+import android.text.TextWatcher;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.Button;
+import android.widget.CheckBox;
+import android.widget.CompoundButton;
+import android.widget.EditText;
+
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.UUID;
+
+public class CrimeFragment extends Fragment {
+ private Crime crime;
+ private EditText titleField;
+ private Button dateButton;
+ private CheckBox solvedCheckBox;
+ private static final String ARG_CRIME_ID =
+ "crime_id";
+ private static final String DIALOG_DATE =
+ "DialogDate";
+ private static final int REQUEST_DATE = 0;
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+// crime = new Crime();
+// UUID crimeId = (UUID)
+// getActivity().getIntent()
+// .getSerializableExtra(CrimeActivity.EXTRA_CRIME_ID);
+// crime = CrimeLab.get(getActivity()).getCrime(crimeId);
+ UUID crimeId = (UUID)
+ getArguments().getSerializable(ARG_CRIME_ID);
+ crime =
+ CrimeLab.get(getActivity()).getCrime(crimeId);
+
+ }
+
+ @Override
+ public View onCreateView( LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
+ View v = inflater.inflate(R.layout.fragment_crime, container, false);
+
+ //variables
+ this.dateButton = v.findViewById(R.id.button_crime_date);
+ this.solvedCheckBox = v.findViewById(R.id.checkBox_crime_solved);
+ this.titleField= v.findViewById(R.id.edit_text_crime_title);
+ //date button
+ SimpleDateFormat dt = new SimpleDateFormat("EEEE, MMMM d, yyyy");
+ String s = dt.format(this.crime.getDate());
+ this.dateButton.setText(s);
+ dateButton.setOnClickListener(new View.OnClickListener()
+ {
+ @Override
+ public void onClick(View v)
+ {
+ FragmentManager manager = getFragmentManager();
+ DatePickerFragment dialog = DatePickerFragment.newInstance(crime.getDate());
+ dialog.setTargetFragment(CrimeFragment.this, REQUEST_DATE);
+ dialog.show(manager, DIALOG_DATE);
+ }
+ });
+
+ this.titleField.setText(crime.getTitle());
+ this.solvedCheckBox.setChecked(crime.isSolved());
+ //checkbox
+ this.solvedCheckBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
+ @Override
+ public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
+ CrimeFragment.this.crime.setSolved(isChecked);
+ }
+ });
+ titleField.addTextChangedListener(new TextWatcher() {
+ @Override
+ public void beforeTextChanged(CharSequence s, int start, int count, int after) {
+ //left blank
+ }
+ @Override
+ public void onTextChanged(CharSequence s, int start, int before, int count) {
+ crime.setTitle(s.toString());
+ }
+ @Override
+ public void afterTextChanged(Editable s) {
+ //blank on purpose
+ }
+
+ });
+ return v;
+ }
+
+ public static CrimeFragment newInstance(UUID crimeId){
+ Bundle args = new Bundle();
+ args.putSerializable(ARG_CRIME_ID, crimeId);
+ CrimeFragment fragment = new CrimeFragment();
+ fragment.setArguments(args);
+ return fragment;
+
+ }
+ @Override
+ public void onActivityResult(int requestCode, int
+ resultCode, Intent data) {
+ if (resultCode != Activity.RESULT_OK) {
+ return;
+ }
+ if (requestCode == REQUEST_DATE) {
+ Date date = (Date) data
+ .getSerializableExtra(DatePickerFragment.EXTRA_DATE);
+ crime.setDate(date);
+ updateDate();
+ }
+ }
+
+ private void updateDate()
+ {
+ dateButton.setText(crime.getDate().toString());
+ }
+}
\ No newline at end of file
diff --git a/Assignments/CriminalIntent12/app/src/main/java/asdv/lisset/criminalintent/CrimeLab.java b/Assignments/CriminalIntent12/app/src/main/java/asdv/lisset/criminalintent/CrimeLab.java
new file mode 100644
index 0000000..8cec043
--- /dev/null
+++ b/Assignments/CriminalIntent12/app/src/main/java/asdv/lisset/criminalintent/CrimeLab.java
@@ -0,0 +1,39 @@
+package asdv.lisset.criminalintent;
+
+import android.content.Context;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.UUID;
+
+public class CrimeLab {
+ private static CrimeLab crimeLab;
+ private List crimes;
+ public static CrimeLab get(Context context) {
+ if (crimeLab == null) {
+ crimeLab = new CrimeLab(context);
+ }
+ return crimeLab;
+ }
+ private CrimeLab(Context context) {
+ crimes = new ArrayList<>();
+ for (int i =0; i < 100; ++i)
+ {
+ Crime crime = new Crime();
+ crime.setTitle("Crime #" + i);
+ crime.setSolved(i % 2 == 0); //every other one
+ crimes.add(crime);
+ }
+ }
+ public List getCrimes() {
+ return crimes;
+ }
+ public Crime getCrime(UUID id) {
+ for (Crime crime : crimes) {
+ if (crime.getId().equals(id)) {
+ return crime;
+ }
+ }
+ return null;
+ }
+}
diff --git a/Assignments/CriminalIntent12/app/src/main/java/asdv/lisset/criminalintent/CrimeListActivity.java b/Assignments/CriminalIntent12/app/src/main/java/asdv/lisset/criminalintent/CrimeListActivity.java
new file mode 100644
index 0000000..53932f2
--- /dev/null
+++ b/Assignments/CriminalIntent12/app/src/main/java/asdv/lisset/criminalintent/CrimeListActivity.java
@@ -0,0 +1,10 @@
+package asdv.lisset.criminalintent;
+
+import androidx.fragment.app.Fragment;
+
+public class CrimeListActivity extends SingleFragmentActivity{
+ @Override
+ protected Fragment createFragment() {
+ return new CrimeListFragment();
+ }
+}
diff --git a/Assignments/CriminalIntent12/app/src/main/java/asdv/lisset/criminalintent/CrimeListFragment.java b/Assignments/CriminalIntent12/app/src/main/java/asdv/lisset/criminalintent/CrimeListFragment.java
new file mode 100644
index 0000000..d18875d
--- /dev/null
+++ b/Assignments/CriminalIntent12/app/src/main/java/asdv/lisset/criminalintent/CrimeListFragment.java
@@ -0,0 +1,115 @@
+package asdv.lisset.criminalintent;
+
+import android.content.Intent;
+import android.os.Bundle;
+import android.text.Layout;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ImageView;
+import android.widget.TextView;
+import android.widget.Toast;
+
+import androidx.annotation.NonNull;
+import androidx.fragment.app.Fragment;
+import androidx.recyclerview.widget.LinearLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
+
+import java.util.List;
+
+public class CrimeListFragment extends Fragment {
+ private RecyclerView crimeRecyclerView;
+ private CrimeAdapter adapter;
+
+ private void updateUI(){
+ CrimeLab crimeLab = CrimeLab.get(getActivity());
+ List crimes = crimeLab.getCrimes();
+ if(this.adapter == null) {
+ adapter = new CrimeAdapter(crimes);
+ crimeRecyclerView.setAdapter(adapter);
+ }
+ else
+ {
+ this.adapter.notifyDataSetChanged();
+ }
+ }
+ @Override
+ public View onCreateView(LayoutInflater inflater,
+ ViewGroup container,
+ Bundle savedInstanceState) {
+ View view =
+ inflater.inflate(R.layout.fragment_crime_list,
+ container, false);
+ crimeRecyclerView = (RecyclerView) view
+ .findViewById(R.id.crime_recycler_view);
+ crimeRecyclerView.setLayoutManager(
+ new LinearLayoutManager(getActivity()));
+ updateUI();
+ return view;
+ }
+
+ @Override
+ public void onResume() {
+ super.onResume();
+ updateUI();
+ }
+
+ //CRIME HOLDER
+ private class CrimeHolder extends RecyclerView.ViewHolder implements View.OnClickListener{
+ private Crime crime;
+ private TextView titleTextView;
+ private TextView dateTextView;
+ private ImageView solvedImageView;
+ public void bind(Crime crime)
+ {
+ this.crime = crime;
+ titleTextView.setText(this.crime.getTitle());
+ dateTextView.setText(this.crime.getDate().toString());
+ solvedImageView.setVisibility(crime.isSolved()? View.VISIBLE : View.GONE);
+ }
+ public CrimeHolder(LayoutInflater inflater, ViewGroup parent){
+ super(inflater.inflate(R.layout.list_item_crime, parent ,false));
+ itemView.setOnClickListener(this);
+ titleTextView = itemView.findViewById(R.id.crime_title);
+ dateTextView = itemView.findViewById(R.id.crime_date);
+ solvedImageView = itemView.findViewById(R.id.imageView_green_cross);
+ }
+
+ @Override
+ public void onClick(View v)
+ {
+ Intent intent = CrimePagerActivity.newIntent(getActivity(), crime.getId());
+ startActivity(intent);
+ }
+
+ }
+ //ADAPTER
+ private class CrimeAdapter extends RecyclerView.Adapter{
+ private List crimes;
+
+ public CrimeAdapter(List crimes) {
+ this.crimes = crimes;
+ }
+
+ @NonNull
+ @Override
+ public CrimeHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+ LayoutInflater layoutInflater = LayoutInflater.from(getActivity());
+ return new CrimeHolder(layoutInflater, parent);
+ }
+
+ @Override
+ public void onBindViewHolder(@NonNull CrimeHolder holder, int position) {
+ Crime crime = crimes.get(position);
+ holder.bind(crime);
+ }
+
+ @Override
+ public int getItemCount() {
+ return crimes.size();
+ }
+
+ }
+
+
+}
diff --git a/Assignments/CriminalIntent12/app/src/main/java/asdv/lisset/criminalintent/CrimePagerActivity.java b/Assignments/CriminalIntent12/app/src/main/java/asdv/lisset/criminalintent/CrimePagerActivity.java
new file mode 100644
index 0000000..fbfe726
--- /dev/null
+++ b/Assignments/CriminalIntent12/app/src/main/java/asdv/lisset/criminalintent/CrimePagerActivity.java
@@ -0,0 +1,68 @@
+package asdv.lisset.criminalintent;
+
+import android.content.Context;
+import android.content.Intent;
+import android.os.Bundle;
+
+import androidx.activity.EdgeToEdge;
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.core.graphics.Insets;
+import androidx.core.view.ViewCompat;
+import androidx.core.view.WindowInsetsCompat;
+import androidx.fragment.app.Fragment;
+import androidx.fragment.app.FragmentManager;
+import androidx.fragment.app.FragmentStatePagerAdapter;
+import androidx.viewpager.widget.ViewPager;
+
+import java.util.List;
+import java.util.UUID;
+
+public class CrimePagerActivity extends AppCompatActivity
+{
+ private static final String EXTRA_CRIME_ID =
+ "com.bignerdranch.android.criminalintent.crime_id";
+ private ViewPager mViewPager;
+ private List mCrimes;
+
+ public static Intent newIntent(Context packageContext, UUID crimeId)
+ {
+ Intent intent = new Intent(packageContext, CrimePagerActivity.class);
+ intent.putExtra(EXTRA_CRIME_ID, crimeId);
+ return intent;
+ }
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState)
+ {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_crime_pager);
+ UUID crimeId = (UUID) getIntent().getSerializableExtra(EXTRA_CRIME_ID);
+ mViewPager = (ViewPager)
+ findViewById(R.id.crime_view_pager);
+ mCrimes = CrimeLab.get(this).getCrimes();
+ FragmentManager fragmentManager =
+ getSupportFragmentManager();
+ mViewPager.setAdapter(new FragmentStatePagerAdapter(fragmentManager)
+ {
+ @Override
+ public Fragment getItem(int position)
+ {
+ Crime crime = mCrimes.get(position);
+ return CrimeFragment.newInstance(crime.getId());
+ }
+ @Override
+ public int getCount()
+ {
+ return mCrimes.size();
+ }
+ });
+ for (int i = 0; i < mCrimes.size(); i++)
+ {
+ if(mCrimes.get(i).getId().equals(crimeId))
+ {
+ mViewPager.setCurrentItem(i);
+ break;
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/Assignments/CriminalIntent12/app/src/main/java/asdv/lisset/criminalintent/DatePickerFragment.java b/Assignments/CriminalIntent12/app/src/main/java/asdv/lisset/criminalintent/DatePickerFragment.java
new file mode 100644
index 0000000..e6353ac
--- /dev/null
+++ b/Assignments/CriminalIntent12/app/src/main/java/asdv/lisset/criminalintent/DatePickerFragment.java
@@ -0,0 +1,84 @@
+package asdv.lisset.criminalintent;
+
+import android.app.Activity;
+import android.app.AlertDialog;
+import android.app.Dialog;
+import android.content.DialogInterface;
+import android.content.Intent;
+import android.os.Bundle;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.widget.DatePicker;
+
+import androidx.fragment.app.DialogFragment;
+
+import java.util.Calendar;
+import java.util.Date;
+import java.util.GregorianCalendar;
+
+public class DatePickerFragment extends DialogFragment
+{
+ private static final String ARG_DATE = "date";
+ private DatePicker mDatePicker;
+
+ public static final String EXTRA_DATE = "com.bignerdranch.android.criminalintent.date";
+ public static DatePickerFragment newInstance(Date date)
+ {
+ Bundle args = new Bundle();
+ args.putSerializable(ARG_DATE, date);
+ DatePickerFragment fragment = new DatePickerFragment();
+ fragment.setArguments(args);
+ return fragment;
+ }
+
+ private void sendResult(int resultCode, Date date)
+ {
+ if (getTargetFragment() == null)
+ {
+ return;
+ }
+ Intent intent = new Intent();
+ intent.putExtra(EXTRA_DATE, date);
+ getTargetFragment().onActivityResult(getTargetRequestCode(), resultCode, intent);
+ }
+ @Override
+ public Dialog onCreateDialog(Bundle savedInstanceState)
+ {
+ Date date = (Date)
+ getArguments().getSerializable(ARG_DATE);
+ Calendar calendar = Calendar.getInstance();
+ calendar.setTime(date);
+ int year = calendar.get(Calendar.YEAR);
+ int month = calendar.get(Calendar.MONTH);
+ int day = calendar.get(Calendar.DAY_OF_MONTH);
+ calendar.setTimeInMillis(500);
+
+ View v = LayoutInflater.from(getActivity()).inflate(R.layout.dialog_date, null);
+
+ mDatePicker = (DatePicker)
+ v.findViewById(R.id.dialog_date_picker);
+ mDatePicker.init(year, month, day, null);
+
+
+ AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
+ builder = builder.setTitle(R.string.date_picker_title);
+ builder = builder.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener()
+ {
+ @Override
+ public void onClick(DialogInterface dialog, int which)
+ {
+ int year = mDatePicker.getYear();
+ int month = mDatePicker.getMonth();
+ int day = mDatePicker.getDayOfMonth();
+ Date date = new GregorianCalendar(year, month, day).getTime();
+ sendResult(Activity.RESULT_OK, date);
+ }
+ });
+ builder = builder.setView(v);
+ return builder.create();
+
+ //return new AlertDialog.Builder(getActivity()).setTitle(R.string.date_picker_title)
+ // .setPositiveButton(android.R.string.ok,null).create();
+ }
+
+}
diff --git a/Assignments/CriminalIntent12/app/src/main/java/asdv/lisset/criminalintent/SingleFragmentActivity.java b/Assignments/CriminalIntent12/app/src/main/java/asdv/lisset/criminalintent/SingleFragmentActivity.java
new file mode 100644
index 0000000..585d634
--- /dev/null
+++ b/Assignments/CriminalIntent12/app/src/main/java/asdv/lisset/criminalintent/SingleFragmentActivity.java
@@ -0,0 +1,28 @@
+package asdv.lisset.criminalintent;
+
+import android.os.Bundle;
+
+import androidx.annotation.Nullable;
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.fragment.app.Fragment;
+import androidx.fragment.app.FragmentManager;
+
+public abstract class SingleFragmentActivity extends AppCompatActivity {
+ protected abstract Fragment createFragment();
+
+ @Override
+ protected void onCreate(@Nullable Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+
+ setContentView(R.layout.activity_fragment);
+ FragmentManager fm =
+ getSupportFragmentManager();
+ Fragment fragment =
+ fm.findFragmentById(R.id.fragment_container);
+ if (fragment == null) {
+ fragment = createFragment();
+ fm.beginTransaction().add(
+ R.id.fragment_container, fragment).commit();
+ }
+ }
+}
diff --git a/Assignments/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/drawable-v24/ic_launcher_foreground.xml b/Assignments/CriminalIntent12/app/src/main/res/drawable-v24/ic_launcher_foreground.xml
similarity index 100%
rename from Assignments/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/drawable-v24/ic_launcher_foreground.xml
rename to Assignments/CriminalIntent12/app/src/main/res/drawable-v24/ic_launcher_foreground.xml
diff --git a/Assignments/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/drawable/ic_launcher_background.xml b/Assignments/CriminalIntent12/app/src/main/res/drawable/ic_launcher_background.xml
similarity index 100%
rename from Assignments/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/drawable/ic_launcher_background.xml
rename to Assignments/CriminalIntent12/app/src/main/res/drawable/ic_launcher_background.xml
diff --git a/Assignments/CriminalIntent12/app/src/main/res/layout-land/fragment_crime.xml b/Assignments/CriminalIntent12/app/src/main/res/layout-land/fragment_crime.xml
new file mode 100644
index 0000000..52f2f89
--- /dev/null
+++ b/Assignments/CriminalIntent12/app/src/main/res/layout-land/fragment_crime.xml
@@ -0,0 +1,47 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Assignments/CriminalIntent12/app/src/main/res/layout/activity_crime_pager.xml b/Assignments/CriminalIntent12/app/src/main/res/layout/activity_crime_pager.xml
new file mode 100644
index 0000000..4f43fb0
--- /dev/null
+++ b/Assignments/CriminalIntent12/app/src/main/res/layout/activity_crime_pager.xml
@@ -0,0 +1,10 @@
+
+
+
+
\ No newline at end of file
diff --git a/Assignments/CriminalIntent12/app/src/main/res/layout/activity_fragment.xml b/Assignments/CriminalIntent12/app/src/main/res/layout/activity_fragment.xml
new file mode 100644
index 0000000..7dcc132
--- /dev/null
+++ b/Assignments/CriminalIntent12/app/src/main/res/layout/activity_fragment.xml
@@ -0,0 +1,10 @@
+
+
+
+
\ No newline at end of file
diff --git a/Assignments/CriminalIntent12/app/src/main/res/layout/dialog_date.xml b/Assignments/CriminalIntent12/app/src/main/res/layout/dialog_date.xml
new file mode 100644
index 0000000..06d3ee9
--- /dev/null
+++ b/Assignments/CriminalIntent12/app/src/main/res/layout/dialog_date.xml
@@ -0,0 +1,8 @@
+
+
+
+
\ No newline at end of file
diff --git a/Assignments/CriminalIntent12/app/src/main/res/layout/fragment_crime.xml b/Assignments/CriminalIntent12/app/src/main/res/layout/fragment_crime.xml
new file mode 100644
index 0000000..8b54b57
--- /dev/null
+++ b/Assignments/CriminalIntent12/app/src/main/res/layout/fragment_crime.xml
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Assignments/CriminalIntent12/app/src/main/res/layout/fragment_crime_list.xml b/Assignments/CriminalIntent12/app/src/main/res/layout/fragment_crime_list.xml
new file mode 100644
index 0000000..22cbfca
--- /dev/null
+++ b/Assignments/CriminalIntent12/app/src/main/res/layout/fragment_crime_list.xml
@@ -0,0 +1,5 @@
+
\ No newline at end of file
diff --git a/Assignments/CriminalIntent12/app/src/main/res/layout/list_item_crime.xml b/Assignments/CriminalIntent12/app/src/main/res/layout/list_item_crime.xml
new file mode 100644
index 0000000..945c15c
--- /dev/null
+++ b/Assignments/CriminalIntent12/app/src/main/res/layout/list_item_crime.xml
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Assignments/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/Assignments/CriminalIntent12/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
similarity index 100%
rename from Assignments/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
rename to Assignments/CriminalIntent12/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
diff --git a/Assignments/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/Assignments/CriminalIntent12/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
similarity index 100%
rename from Assignments/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
rename to Assignments/CriminalIntent12/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
diff --git a/Assignments/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/mipmap-hdpi/ic_launcher.webp b/Assignments/CriminalIntent12/app/src/main/res/mipmap-hdpi/ic_launcher.webp
similarity index 100%
rename from Assignments/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/mipmap-hdpi/ic_launcher.webp
rename to Assignments/CriminalIntent12/app/src/main/res/mipmap-hdpi/ic_launcher.webp
diff --git a/Assignments/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp b/Assignments/CriminalIntent12/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp
similarity index 100%
rename from Assignments/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp
rename to Assignments/CriminalIntent12/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp
diff --git a/Assignments/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/mipmap-mdpi/ic_launcher.webp b/Assignments/CriminalIntent12/app/src/main/res/mipmap-mdpi/ic_launcher.webp
similarity index 100%
rename from Assignments/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/mipmap-mdpi/ic_launcher.webp
rename to Assignments/CriminalIntent12/app/src/main/res/mipmap-mdpi/ic_launcher.webp
diff --git a/Assignments/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp b/Assignments/CriminalIntent12/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp
similarity index 100%
rename from Assignments/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp
rename to Assignments/CriminalIntent12/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp
diff --git a/Assignments/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/mipmap-xhdpi/ic_launcher.webp b/Assignments/CriminalIntent12/app/src/main/res/mipmap-xhdpi/ic_launcher.webp
similarity index 100%
rename from Assignments/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/mipmap-xhdpi/ic_launcher.webp
rename to Assignments/CriminalIntent12/app/src/main/res/mipmap-xhdpi/ic_launcher.webp
diff --git a/Assignments/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp b/Assignments/CriminalIntent12/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp
similarity index 100%
rename from Assignments/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp
rename to Assignments/CriminalIntent12/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp
diff --git a/Assignments/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp b/Assignments/CriminalIntent12/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp
similarity index 100%
rename from Assignments/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp
rename to Assignments/CriminalIntent12/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp
diff --git a/Assignments/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp b/Assignments/CriminalIntent12/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp
similarity index 100%
rename from Assignments/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp
rename to Assignments/CriminalIntent12/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp
diff --git a/Assignments/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp b/Assignments/CriminalIntent12/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp
similarity index 100%
rename from Assignments/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp
rename to Assignments/CriminalIntent12/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp
diff --git a/Assignments/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp b/Assignments/CriminalIntent12/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp
similarity index 100%
rename from Assignments/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp
rename to Assignments/CriminalIntent12/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp
diff --git a/Assignments/CriminalIntent12/app/src/main/res/values-night/themes.xml b/Assignments/CriminalIntent12/app/src/main/res/values-night/themes.xml
new file mode 100644
index 0000000..bd56ea6
--- /dev/null
+++ b/Assignments/CriminalIntent12/app/src/main/res/values-night/themes.xml
@@ -0,0 +1,7 @@
+
+
+
+
\ No newline at end of file
diff --git a/Assignments/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/values/colors.xml b/Assignments/CriminalIntent12/app/src/main/res/values/colors.xml
similarity index 100%
rename from Assignments/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/values/colors.xml
rename to Assignments/CriminalIntent12/app/src/main/res/values/colors.xml
diff --git a/Assignments/CriminalIntent12/app/src/main/res/values/strings.xml b/Assignments/CriminalIntent12/app/src/main/res/values/strings.xml
new file mode 100644
index 0000000..d1f97d9
--- /dev/null
+++ b/Assignments/CriminalIntent12/app/src/main/res/values/strings.xml
@@ -0,0 +1,9 @@
+
+ Criminal Intent
+
+ Enter a title for the crime.
+ TITLE
+ DETAILS
+ Solved
+ Date of crime:
+
\ No newline at end of file
diff --git a/Assignments/CriminalIntent12/app/src/main/res/values/themes.xml b/Assignments/CriminalIntent12/app/src/main/res/values/themes.xml
new file mode 100644
index 0000000..447dbe6
--- /dev/null
+++ b/Assignments/CriminalIntent12/app/src/main/res/values/themes.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Assignments/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/xml/backup_rules.xml b/Assignments/CriminalIntent12/app/src/main/res/xml/backup_rules.xml
similarity index 100%
rename from Assignments/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/xml/backup_rules.xml
rename to Assignments/CriminalIntent12/app/src/main/res/xml/backup_rules.xml
diff --git a/Assignments/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/xml/data_extraction_rules.xml b/Assignments/CriminalIntent12/app/src/main/res/xml/data_extraction_rules.xml
similarity index 100%
rename from Assignments/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/xml/data_extraction_rules.xml
rename to Assignments/CriminalIntent12/app/src/main/res/xml/data_extraction_rules.xml
diff --git a/Assignments/CriminalIntent12/app/src/test/java/asdv/lisset/criminalintent/ExampleUnitTest.java b/Assignments/CriminalIntent12/app/src/test/java/asdv/lisset/criminalintent/ExampleUnitTest.java
new file mode 100644
index 0000000..72c2210
--- /dev/null
+++ b/Assignments/CriminalIntent12/app/src/test/java/asdv/lisset/criminalintent/ExampleUnitTest.java
@@ -0,0 +1,17 @@
+package asdv.lisset.criminalintent;
+
+import org.junit.Test;
+
+import static org.junit.Assert.*;
+
+/**
+ * Example local unit test, which will execute on the development machine (host).
+ *
+ * @see Testing documentation
+ */
+public class ExampleUnitTest {
+ @Test
+ public void addition_isCorrect() {
+ assertEquals(4, 2 + 2);
+ }
+}
\ No newline at end of file
diff --git a/Assignments/CriminalIntent12/build.gradle.kts b/Assignments/CriminalIntent12/build.gradle.kts
new file mode 100644
index 0000000..2bbd2a9
--- /dev/null
+++ b/Assignments/CriminalIntent12/build.gradle.kts
@@ -0,0 +1,4 @@
+// Top-level build file where you can add configuration options common to all sub-projects/modules.
+plugins {
+ alias(libs.plugins.androidApplication) apply false
+}
\ No newline at end of file
diff --git a/Assignments/CriminalIntent12/gradle.properties b/Assignments/CriminalIntent12/gradle.properties
new file mode 100644
index 0000000..4387edc
--- /dev/null
+++ b/Assignments/CriminalIntent12/gradle.properties
@@ -0,0 +1,21 @@
+# Project-wide Gradle settings.
+# IDE (e.g. Android Studio) users:
+# Gradle settings configured through the IDE *will override*
+# any settings specified in this file.
+# For more details on how to configure your build environment visit
+# http://www.gradle.org/docs/current/userguide/build_environment.html
+# Specifies the JVM arguments used for the daemon process.
+# The setting is particularly useful for tweaking memory settings.
+org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8
+# When configured, Gradle will run in incubating parallel mode.
+# This option should only be used with decoupled projects. For more details, visit
+# https://developer.android.com/r/tools/gradle-multi-project-decoupled-projects
+# org.gradle.parallel=true
+# AndroidX package structure to make it clearer which packages are bundled with the
+# Android operating system, and which are packaged with your app's APK
+# https://developer.android.com/topic/libraries/support-library/androidx-rn
+android.useAndroidX=true
+# Enables namespacing of each library's R class so that its R class includes only the
+# resources declared in the library itself and none from the library's dependencies,
+# thereby reducing the size of the R class for that library
+android.nonTransitiveRClass=true
\ No newline at end of file
diff --git a/Assignments/CriminalIntent12/gradle/libs.versions.toml b/Assignments/CriminalIntent12/gradle/libs.versions.toml
new file mode 100644
index 0000000..3f8f559
--- /dev/null
+++ b/Assignments/CriminalIntent12/gradle/libs.versions.toml
@@ -0,0 +1,22 @@
+[versions]
+agp = "8.3.0"
+junit = "4.13.2"
+junitVersion = "1.1.5"
+espressoCore = "3.5.1"
+appcompat = "1.6.1"
+material = "1.11.0"
+activity = "1.8.2"
+constraintlayout = "2.1.4"
+
+[libraries]
+junit = { group = "junit", name = "junit", version.ref = "junit" }
+ext-junit = { group = "androidx.test.ext", name = "junit", version.ref = "junitVersion" }
+espresso-core = { group = "androidx.test.espresso", name = "espresso-core", version.ref = "espressoCore" }
+appcompat = { group = "androidx.appcompat", name = "appcompat", version.ref = "appcompat" }
+material = { group = "com.google.android.material", name = "material", version.ref = "material" }
+activity = { group = "androidx.activity", name = "activity", version.ref = "activity" }
+constraintlayout = { group = "androidx.constraintlayout", name = "constraintlayout", version.ref = "constraintlayout" }
+
+[plugins]
+androidApplication = { id = "com.android.application", version.ref = "agp" }
+
diff --git a/Assignments/FragmentToFragmentMap_CalebFontenot2/gradle/wrapper/gradle-wrapper.jar b/Assignments/CriminalIntent12/gradle/wrapper/gradle-wrapper.jar
similarity index 100%
rename from Assignments/FragmentToFragmentMap_CalebFontenot2/gradle/wrapper/gradle-wrapper.jar
rename to Assignments/CriminalIntent12/gradle/wrapper/gradle-wrapper.jar
diff --git a/Assignments/CriminalIntent12/gradle/wrapper/gradle-wrapper.properties b/Assignments/CriminalIntent12/gradle/wrapper/gradle-wrapper.properties
new file mode 100644
index 0000000..1adc8dd
--- /dev/null
+++ b/Assignments/CriminalIntent12/gradle/wrapper/gradle-wrapper.properties
@@ -0,0 +1,6 @@
+#Wed Feb 14 09:55:47 CST 2024
+distributionBase=GRADLE_USER_HOME
+distributionPath=wrapper/dists
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.4-bin.zip
+zipStoreBase=GRADLE_USER_HOME
+zipStorePath=wrapper/dists
diff --git a/Assignments/FragmentToFragmentMap_CalebFontenot2/gradlew b/Assignments/CriminalIntent12/gradlew
old mode 100755
new mode 100644
similarity index 100%
rename from Assignments/FragmentToFragmentMap_CalebFontenot2/gradlew
rename to Assignments/CriminalIntent12/gradlew
diff --git a/Assignments/FragmentToFragmentMap_CalebFontenot2/gradlew.bat b/Assignments/CriminalIntent12/gradlew.bat
similarity index 100%
rename from Assignments/FragmentToFragmentMap_CalebFontenot2/gradlew.bat
rename to Assignments/CriminalIntent12/gradlew.bat
diff --git a/Assignments/CriminalIntent12/settings.gradle.kts b/Assignments/CriminalIntent12/settings.gradle.kts
new file mode 100644
index 0000000..40eea09
--- /dev/null
+++ b/Assignments/CriminalIntent12/settings.gradle.kts
@@ -0,0 +1,23 @@
+pluginManagement {
+ repositories {
+ google {
+ content {
+ includeGroupByRegex("com\\.android.*")
+ includeGroupByRegex("com\\.google.*")
+ includeGroupByRegex("androidx.*")
+ }
+ }
+ mavenCentral()
+ gradlePluginPortal()
+ }
+}
+dependencyResolutionManagement {
+ repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
+ repositories {
+ google()
+ mavenCentral()
+ }
+}
+
+rootProject.name = "CriminalIntent3"
+include(":app")
diff --git a/Assignments/CriminalIntentChapter12.zip b/Assignments/CriminalIntentChapter12.zip
new file mode 100644
index 0000000..cbfab80
Binary files /dev/null and b/Assignments/CriminalIntentChapter12.zip differ
diff --git a/Assignments/fragmentToFragmnetMap/.gitignore b/Assignments/CriminalIntentChapter12/.gitignore
similarity index 100%
rename from Assignments/fragmentToFragmnetMap/.gitignore
rename to Assignments/CriminalIntentChapter12/.gitignore
diff --git a/Assignments/CriminalIntentChapter12/.idea/.gitignore b/Assignments/CriminalIntentChapter12/.idea/.gitignore
new file mode 100644
index 0000000..26d3352
--- /dev/null
+++ b/Assignments/CriminalIntentChapter12/.idea/.gitignore
@@ -0,0 +1,3 @@
+# Default ignored files
+/shelf/
+/workspace.xml
diff --git a/Assignments/CriminalIntentChapter12/.idea/.name b/Assignments/CriminalIntentChapter12/.idea/.name
new file mode 100644
index 0000000..da9ad17
--- /dev/null
+++ b/Assignments/CriminalIntentChapter12/.idea/.name
@@ -0,0 +1 @@
+CriminalIntentChapter7
\ No newline at end of file
diff --git a/Assignments/CriminalIntentChapter12/.idea/appInsightsSettings.xml b/Assignments/CriminalIntentChapter12/.idea/appInsightsSettings.xml
new file mode 100644
index 0000000..371f2e2
--- /dev/null
+++ b/Assignments/CriminalIntentChapter12/.idea/appInsightsSettings.xml
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Assignments/CriminalIntentChapter12/.idea/compiler.xml b/Assignments/CriminalIntentChapter12/.idea/compiler.xml
new file mode 100644
index 0000000..b589d56
--- /dev/null
+++ b/Assignments/CriminalIntentChapter12/.idea/compiler.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Assignments/CriminalIntentChapter12/.idea/deploymentTargetDropDown.xml b/Assignments/CriminalIntentChapter12/.idea/deploymentTargetDropDown.xml
new file mode 100644
index 0000000..0c0c338
--- /dev/null
+++ b/Assignments/CriminalIntentChapter12/.idea/deploymentTargetDropDown.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Assignments/FragmentToFragmentMap_CalebFontenot2/.idea/discord.xml b/Assignments/CriminalIntentChapter12/.idea/discord.xml
similarity index 100%
rename from Assignments/FragmentToFragmentMap_CalebFontenot2/.idea/discord.xml
rename to Assignments/CriminalIntentChapter12/.idea/discord.xml
diff --git a/Assignments/CriminalIntentChapter12/.idea/gradle.xml b/Assignments/CriminalIntentChapter12/.idea/gradle.xml
new file mode 100644
index 0000000..0897082
--- /dev/null
+++ b/Assignments/CriminalIntentChapter12/.idea/gradle.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Assignments/CriminalIntentChapter12/.idea/migrations.xml b/Assignments/CriminalIntentChapter12/.idea/migrations.xml
new file mode 100644
index 0000000..f8051a6
--- /dev/null
+++ b/Assignments/CriminalIntentChapter12/.idea/migrations.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Assignments/fragmentToFragmnetMap/.idea/misc.xml b/Assignments/CriminalIntentChapter12/.idea/misc.xml
similarity index 100%
rename from Assignments/fragmentToFragmnetMap/.idea/misc.xml
rename to Assignments/CriminalIntentChapter12/.idea/misc.xml
diff --git a/Assignments/CriminalIntentChapter12/.idea/vcs.xml b/Assignments/CriminalIntentChapter12/.idea/vcs.xml
new file mode 100644
index 0000000..b2bdec2
--- /dev/null
+++ b/Assignments/CriminalIntentChapter12/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Assignments/CriminalIntentChapter12/CriminalIntentChapter8test.zip b/Assignments/CriminalIntentChapter12/CriminalIntentChapter8test.zip
new file mode 100644
index 0000000..ea3b94b
Binary files /dev/null and b/Assignments/CriminalIntentChapter12/CriminalIntentChapter8test.zip differ
diff --git a/Assignments/fragmentToFragmnetMap/app/.gitignore b/Assignments/CriminalIntentChapter12/app/.gitignore
similarity index 100%
rename from Assignments/fragmentToFragmnetMap/app/.gitignore
rename to Assignments/CriminalIntentChapter12/app/.gitignore
diff --git a/Assignments/CriminalIntentChapter12/app/build.gradle.kts b/Assignments/CriminalIntentChapter12/app/build.gradle.kts
new file mode 100644
index 0000000..88a8e6b
--- /dev/null
+++ b/Assignments/CriminalIntentChapter12/app/build.gradle.kts
@@ -0,0 +1,43 @@
+plugins {
+ id("com.android.application")
+}
+
+android {
+ namespace = "com.example.criminalintentchapter7"
+ compileSdk = 34
+
+ defaultConfig {
+ applicationId = "com.example.criminalintentchapter7"
+ minSdk = 21
+ targetSdk = 34
+ versionCode = 1
+ versionName = "1.0"
+
+ testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
+ }
+
+ buildTypes {
+ release {
+ isMinifyEnabled = false
+ proguardFiles(
+ getDefaultProguardFile("proguard-android-optimize.txt"),
+ "proguard-rules.pro"
+ )
+ }
+ }
+ compileOptions {
+ sourceCompatibility = JavaVersion.VERSION_1_8
+ targetCompatibility = JavaVersion.VERSION_1_8
+ }
+}
+
+dependencies {
+
+ implementation("androidx.appcompat:appcompat:1.6.1")
+ implementation("com.google.android.material:material:1.11.0")
+ implementation("androidx.constraintlayout:constraintlayout:2.1.4")
+ implementation("androidx.recyclerview:recyclerview:1.2.1")
+ testImplementation("junit:junit:4.13.2")
+ androidTestImplementation("androidx.test.ext:junit:1.1.5")
+ androidTestImplementation("androidx.test.espresso:espresso-core:3.5.1")
+}
\ No newline at end of file
diff --git a/Assignments/fragmentToFragmnetMap/app/proguard-rules.pro b/Assignments/CriminalIntentChapter12/app/proguard-rules.pro
similarity index 100%
rename from Assignments/fragmentToFragmnetMap/app/proguard-rules.pro
rename to Assignments/CriminalIntentChapter12/app/proguard-rules.pro
diff --git a/Assignments/CriminalIntentChapter12/app/src/androidTest/java/com/example/criminalintentchapter7/ExampleInstrumentedTest.java b/Assignments/CriminalIntentChapter12/app/src/androidTest/java/com/example/criminalintentchapter7/ExampleInstrumentedTest.java
new file mode 100644
index 0000000..689ed35
--- /dev/null
+++ b/Assignments/CriminalIntentChapter12/app/src/androidTest/java/com/example/criminalintentchapter7/ExampleInstrumentedTest.java
@@ -0,0 +1,26 @@
+package com.example.criminalintentchapter7;
+
+import android.content.Context;
+
+import androidx.test.platform.app.InstrumentationRegistry;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import static org.junit.Assert.*;
+
+/**
+ * Instrumented test, which will execute on an Android device.
+ *
+ * @see Testing documentation
+ */
+@RunWith(AndroidJUnit4.class)
+public class ExampleInstrumentedTest {
+ @Test
+ public void useAppContext() {
+ // Context of the app under test.
+ Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext();
+ assertEquals("com.example.criminalintentchapter7", appContext.getPackageName());
+ }
+}
\ No newline at end of file
diff --git a/Assignments/CriminalIntentChapter12/app/src/main/AndroidManifest.xml b/Assignments/CriminalIntentChapter12/app/src/main/AndroidManifest.xml
new file mode 100644
index 0000000..54d48be
--- /dev/null
+++ b/Assignments/CriminalIntentChapter12/app/src/main/AndroidManifest.xml
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Assignments/CriminalIntentChapter12/app/src/main/java/com/example/criminalintentchapter7/Crime.java b/Assignments/CriminalIntentChapter12/app/src/main/java/com/example/criminalintentchapter7/Crime.java
new file mode 100644
index 0000000..b02740d
--- /dev/null
+++ b/Assignments/CriminalIntentChapter12/app/src/main/java/com/example/criminalintentchapter7/Crime.java
@@ -0,0 +1,54 @@
+package com.example.criminalintentchapter7;
+
+import java.util.Date;
+import java.util.UUID;
+
+public class Crime
+{
+ private UUID mId;
+ private String mTitle;
+ private boolean mSolved;
+ private Date mDate;
+ private boolean mRequiresPolice;
+
+ public Crime() {
+ mId = UUID.randomUUID();
+ mDate = new Date();
+ }
+
+ public UUID getId() {
+ return mId;
+ }
+
+ public String getTitle() {
+ return mTitle;
+ }
+
+ public void setTitle(String title) {
+ mTitle = title;
+ }
+
+ public boolean isSolved() {
+ return mSolved;
+ }
+
+ public void setSolved(boolean solved) {
+ mSolved = solved;
+ }
+
+ public Date getDate() {
+ return mDate;
+ }
+
+ public void setDate(Date date) {
+ mDate = date;
+ }
+
+ public boolean requiresPolice() {
+ return mRequiresPolice;
+ }
+
+ public void setRequiresPolice(boolean requiresPolice) {
+ mRequiresPolice = requiresPolice;
+ }
+}
diff --git a/Assignments/CriminalIntentChapter12/app/src/main/java/com/example/criminalintentchapter7/CrimeActivity.java b/Assignments/CriminalIntentChapter12/app/src/main/java/com/example/criminalintentchapter7/CrimeActivity.java
new file mode 100644
index 0000000..9386bc3
--- /dev/null
+++ b/Assignments/CriminalIntentChapter12/app/src/main/java/com/example/criminalintentchapter7/CrimeActivity.java
@@ -0,0 +1,28 @@
+package com.example.criminalintentchapter7;
+
+import android.content.Context;
+import android.content.Intent;
+import android.os.Bundle;
+
+import androidx.fragment.app.Fragment;
+
+import java.util.UUID;
+
+public class CrimeActivity extends SingleFragmentActivity {
+
+ private static final String EXTRA_CRIME_ID = "com.bignerdranch.android.criminalintent.crime_id";
+
+ @Override
+ protected Fragment createFragment() {
+ UUID crimeId = (UUID) getIntent()
+ .getSerializableExtra(EXTRA_CRIME_ID);
+ return CrimeFragment.newInstance(crimeId);
+ }
+ public static Intent newIntent(Context
+ packageContext, UUID crimeId) {
+ Intent intent = new Intent(packageContext,
+ CrimeActivity.class);
+ intent.putExtra(EXTRA_CRIME_ID, crimeId);
+ return intent;
+ }
+}
\ No newline at end of file
diff --git a/Assignments/CriminalIntentChapter12/app/src/main/java/com/example/criminalintentchapter7/CrimeFragment.java b/Assignments/CriminalIntentChapter12/app/src/main/java/com/example/criminalintentchapter7/CrimeFragment.java
new file mode 100644
index 0000000..c02a5ed
--- /dev/null
+++ b/Assignments/CriminalIntentChapter12/app/src/main/java/com/example/criminalintentchapter7/CrimeFragment.java
@@ -0,0 +1,112 @@
+package com.example.criminalintentchapter7;
+
+import android.app.Activity;
+import android.content.Intent;
+import android.os.Bundle;
+import android.text.Editable;
+import android.text.TextWatcher;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.Button;
+import android.widget.CheckBox;
+import android.widget.CompoundButton;
+import android.widget.EditText;
+
+import androidx.fragment.app.Fragment;
+import androidx.fragment.app.FragmentManager;
+
+import java.text.SimpleDateFormat;
+import java.util.Locale;
+import java.util.UUID;
+
+public class CrimeFragment extends Fragment {
+ private static final String ARG_CRIME_ID = "crime_id";
+ private static final String EXTRA_CRIME_UPDATED = "com.example.criminalintentchapter7.crime_updated";
+
+ private Crime mCrime;
+ private EditText mTitleField;
+ private Button mDateButton;
+ private CheckBox mSolvedCheckBox;
+ private static final String DIALOG_DATE = "DialogDate";
+
+ public static CrimeFragment newInstance(UUID crimeId) {
+ Bundle args = new Bundle();
+ args.putSerializable(ARG_CRIME_ID, crimeId);
+
+ CrimeFragment fragment = new CrimeFragment();
+ fragment.setArguments(args);
+ return fragment;
+ }
+
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ UUID crimeId = (UUID) getArguments().getSerializable(ARG_CRIME_ID);
+ mCrime = CrimeLab.get(getActivity()).getCrime(crimeId);
+ }
+
+ @Override
+ public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
+ View v = inflater.inflate(R.layout.fragment_crime, container, false);
+
+ mTitleField = (EditText) v.findViewById(R.id.crime_title);
+ mTitleField.setText(mCrime.getTitle());
+ mTitleField.addTextChangedListener(new TextWatcher() {
+ @Override
+ public void beforeTextChanged(CharSequence s, int start, int count, int after) {
+ // This space intentionally left blank
+ }
+
+ @Override
+ public void onTextChanged(CharSequence s, int start, int before, int count) {
+ mCrime.setTitle(s.toString());
+ returnResult();
+ }
+
+ @Override
+ public void afterTextChanged(Editable s) {
+ // This one too
+ }
+ });
+
+ mDateButton = (Button) v.findViewById(R.id.crime_date);
+ updateDate();
+ mDateButton.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v)
+ {
+ FragmentManager manager = getFragmentManager();
+ DatePickerFragment dialog = new DatePickerFragment().newInstance(mCrime.getDate());
+ dialog.show(manager, DIALOG_DATE);
+ }
+ });
+
+ mSolvedCheckBox = (CheckBox) v.findViewById(R.id.crime_solved);
+ mSolvedCheckBox.setChecked(mCrime.isSolved());
+ mSolvedCheckBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
+ @Override
+ public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
+ mCrime.setSolved(isChecked);
+ returnResult();
+ }
+ });
+
+ return v;
+ }
+
+ private void updateDate() {
+ SimpleDateFormat dateFormat = new SimpleDateFormat("EEE, MMM d, yyyy", Locale.getDefault());
+ mDateButton.setText(dateFormat.format(mCrime.getDate()));
+ }
+
+ private void returnResult() {
+ Intent data = new Intent();
+ data.putExtra(EXTRA_CRIME_UPDATED, mCrime.getId());
+ getActivity().setResult(Activity.RESULT_OK, data);
+ }
+
+ public static UUID getUpdatedCrimeId(Intent result) {
+ return (UUID) result.getSerializableExtra(EXTRA_CRIME_UPDATED);
+ }
+}
diff --git a/Assignments/CriminalIntentChapter12/app/src/main/java/com/example/criminalintentchapter7/CrimeLab.java b/Assignments/CriminalIntentChapter12/app/src/main/java/com/example/criminalintentchapter7/CrimeLab.java
new file mode 100644
index 0000000..508e8d1
--- /dev/null
+++ b/Assignments/CriminalIntentChapter12/app/src/main/java/com/example/criminalintentchapter7/CrimeLab.java
@@ -0,0 +1,51 @@
+package com.example.criminalintentchapter7;
+
+import android.content.Context;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.UUID;
+
+public class CrimeLab {
+ private static CrimeLab sCrimeLab;
+ private List mCrimes;
+
+ public static CrimeLab get(Context context) {
+ if (sCrimeLab == null) {
+ sCrimeLab = new CrimeLab(context);
+ }
+ return sCrimeLab;
+ }
+
+ private CrimeLab(Context context) {
+ mCrimes = new ArrayList<>();
+ for (int i = 0; i < 100; i++) {
+ Crime crime = new Crime();
+ crime.setTitle("Crime #" + i);
+ crime.setSolved(i % 2 == 0);
+ mCrimes.add(crime);
+ }
+ }
+
+ public List getCrimes() {
+ return mCrimes;
+ }
+
+ public Crime getCrime(UUID id) {
+ for (Crime crime : mCrimes) {
+ if (crime.getId().equals(id)) {
+ return crime;
+ }
+ }
+ return null;
+ }
+
+ public int getCrimeIndex(UUID id) {
+ for (int i = 0; i < mCrimes.size(); i++) {
+ if (mCrimes.get(i).getId().equals(id)) {
+ return i;
+ }
+ }
+ return -1;
+ }
+}
diff --git a/Assignments/CriminalIntentChapter12/app/src/main/java/com/example/criminalintentchapter7/CrimeListActivity.java b/Assignments/CriminalIntentChapter12/app/src/main/java/com/example/criminalintentchapter7/CrimeListActivity.java
new file mode 100644
index 0000000..b1655c1
--- /dev/null
+++ b/Assignments/CriminalIntentChapter12/app/src/main/java/com/example/criminalintentchapter7/CrimeListActivity.java
@@ -0,0 +1,11 @@
+package com.example.criminalintentchapter7;
+
+import androidx.fragment.app.Fragment;
+
+public class CrimeListActivity extends SingleFragmentActivity{
+
+ @Override
+ protected Fragment createFragment() {
+ return new CrimeListFragment();
+ }
+}
diff --git a/Assignments/CriminalIntentChapter12/app/src/main/java/com/example/criminalintentchapter7/CrimeListFragment.java b/Assignments/CriminalIntentChapter12/app/src/main/java/com/example/criminalintentchapter7/CrimeListFragment.java
new file mode 100644
index 0000000..1f4acf4
--- /dev/null
+++ b/Assignments/CriminalIntentChapter12/app/src/main/java/com/example/criminalintentchapter7/CrimeListFragment.java
@@ -0,0 +1,128 @@
+package com.example.criminalintentchapter7;
+
+import android.app.Activity;
+import android.content.Intent;
+import android.os.Bundle;
+import androidx.fragment.app.Fragment;
+import androidx.recyclerview.widget.LinearLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+import java.util.List;
+import java.util.UUID;
+
+public class CrimeListFragment extends Fragment {
+ private static final int REQUEST_CRIME = 1;
+ private static final String SAVED_SUBTITLE_VISIBLE = "subtitle_visible";
+ private RecyclerView mCrimeRecyclerView;
+ private CrimeAdapter mAdapter;
+ private boolean mSubtitleVisible;
+
+
+ @Override
+ public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
+ View view = inflater.inflate(R.layout.fragment_crime_list, container, false);
+ mCrimeRecyclerView = (RecyclerView) view.findViewById(R.id.crime_recycler_view);
+ mCrimeRecyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
+
+ if (savedInstanceState != null) {
+ mSubtitleVisible = savedInstanceState.getBoolean(SAVED_SUBTITLE_VISIBLE);
+ }
+
+
+ updateUI();
+ return view;
+ }
+
+ @Override
+ public void onResume() {
+ super.onResume();
+ updateUI();
+ }
+
+ private void updateUI() {
+ CrimeLab crimeLab = CrimeLab.get(getActivity());
+ List crimes = crimeLab.getCrimes();
+
+ if (mAdapter == null) {
+ mAdapter = new CrimeAdapter(crimes);
+ mCrimeRecyclerView.setAdapter(mAdapter);
+ } else {
+ mAdapter.notifyDataSetChanged();
+ }
+ }
+
+ private class CrimeHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
+ private TextView mTitleTextView;
+ private TextView mDateTextView;
+ private ImageView mSolvedImageView;
+ private Crime mCrime;
+
+ public CrimeHolder(LayoutInflater inflater, ViewGroup parent) {
+ super(inflater.inflate(R.layout.list_item_crime, parent, false));
+ itemView.setOnClickListener(this);
+
+ mTitleTextView = (TextView) itemView.findViewById(R.id.crime_title);
+ mDateTextView = (TextView) itemView.findViewById(R.id.crime_date);
+ mSolvedImageView = (ImageView) itemView.findViewById(R.id.crime_solved);
+ }
+
+ public void bind(Crime crime) {
+ mCrime = crime;
+ mTitleTextView.setText(mCrime.getTitle());
+ mDateTextView.setText(mCrime.getDate().toString());
+ mSolvedImageView.setVisibility(crime.isSolved() ? View.VISIBLE : View.GONE);
+ }
+
+ @Override
+ public void onClick(View view) {
+ Intent intent = CrimeActivity.newIntent(getActivity(), mCrime.getId());
+ startActivityForResult(intent, REQUEST_CRIME);
+ }
+ }
+
+ private class CrimeAdapter extends RecyclerView.Adapter {
+ private List mCrimes;
+
+ public CrimeAdapter(List crimes) {
+ mCrimes = crimes;
+ }
+
+ @Override
+ public CrimeHolder onCreateViewHolder(ViewGroup parent, int viewType) {
+ LayoutInflater layoutInflater = LayoutInflater.from(getActivity());
+ return new CrimeHolder(layoutInflater, parent);
+ }
+
+ @Override
+ public void onBindViewHolder(CrimeHolder holder, int position) {
+ Crime crime = mCrimes.get(position);
+ holder.bind(crime);
+ }
+
+ @Override
+ public int getItemCount() {
+ return mCrimes.size();
+ }
+ }
+
+ @Override
+ public void onActivityResult(int requestCode, int resultCode, Intent data) {
+ super.onActivityResult(requestCode, resultCode, data);
+
+ if (requestCode == REQUEST_CRIME && resultCode == Activity.RESULT_OK) {
+ if (data != null) {
+ UUID crimeId = CrimeFragment.getUpdatedCrimeId(data);
+ int crimeIndex = CrimeLab.get(getActivity()).getCrimeIndex(crimeId);
+
+ if (crimeIndex >= 0) {
+ mAdapter.notifyItemChanged(crimeIndex);
+ }
+ }
+ }
+ }
+}
diff --git a/Assignments/CriminalIntentChapter12/app/src/main/java/com/example/criminalintentchapter7/DatePickerFragment.java b/Assignments/CriminalIntentChapter12/app/src/main/java/com/example/criminalintentchapter7/DatePickerFragment.java
new file mode 100644
index 0000000..3cfdfd7
--- /dev/null
+++ b/Assignments/CriminalIntentChapter12/app/src/main/java/com/example/criminalintentchapter7/DatePickerFragment.java
@@ -0,0 +1,41 @@
+package com.example.criminalintentchapter7;
+
+import android.app.AlertDialog;
+import android.app.Dialog;
+import android.content.DialogInterface;
+import android.os.Bundle;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.widget.DatePicker;
+
+import androidx.fragment.app.DialogFragment;
+
+import java.util.Date;
+
+public class DatePickerFragment extends DialogFragment
+{
+
+ private static final String ARG_DATE = "date";
+ private DatePicker mDatePicker;
+
+ public static DatePickerFragment newInstance(Date date)
+ {
+ Bundle args = new Bundle();
+ args.putSerializable(ARG_DATE, date);
+
+ DatePickerFragment fragment = new DatePickerFragment();
+ fragment.setArguments(args);
+ return fragment;
+ }
+ @Override
+ public Dialog onCreateDialog(Bundle savedInstanceState) {
+
+ View v = LayoutInflater.from(getActivity()).inflate(R.layout.dialog_date, null);
+
+ return new AlertDialog.Builder(getActivity())
+ .setView(v)
+ .setTitle(R.string.date_picker_title)
+ .setPositiveButton(android.R.string.ok, null)
+ .create();
+ }
+}
diff --git a/Assignments/CriminalIntentChapter12/app/src/main/java/com/example/criminalintentchapter7/SingleFragmentActivity.java b/Assignments/CriminalIntentChapter12/app/src/main/java/com/example/criminalintentchapter7/SingleFragmentActivity.java
new file mode 100644
index 0000000..a8df84c
--- /dev/null
+++ b/Assignments/CriminalIntentChapter12/app/src/main/java/com/example/criminalintentchapter7/SingleFragmentActivity.java
@@ -0,0 +1,29 @@
+package com.example.criminalintentchapter7;
+
+import android.os.Bundle;
+
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.fragment.app.Fragment;
+import androidx.fragment.app.FragmentManager;
+
+public abstract class SingleFragmentActivity extends AppCompatActivity
+{
+ protected abstract Fragment createFragment();
+ @Override
+ protected void onCreate(Bundle
+ savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_fragment);
+ FragmentManager fm =
+ getSupportFragmentManager();
+ Fragment fragment =
+ fm.findFragmentById(R.id.fragment_container);
+ if (fragment == null) {
+ fragment = createFragment();
+ fm.beginTransaction()
+ .add(R.id.fragment_container,
+ fragment)
+ .commit();
+ }
+ }
+}
diff --git a/Assignments/CriminalIntentChapter12/app/src/main/res/drawable-hdpi/ic_solved.png b/Assignments/CriminalIntentChapter12/app/src/main/res/drawable-hdpi/ic_solved.png
new file mode 100644
index 0000000..e9b9263
Binary files /dev/null and b/Assignments/CriminalIntentChapter12/app/src/main/res/drawable-hdpi/ic_solved.png differ
diff --git a/Assignments/CriminalIntentChapter12/app/src/main/res/drawable-mdpi/ic_solved.png b/Assignments/CriminalIntentChapter12/app/src/main/res/drawable-mdpi/ic_solved.png
new file mode 100644
index 0000000..9548d3c
Binary files /dev/null and b/Assignments/CriminalIntentChapter12/app/src/main/res/drawable-mdpi/ic_solved.png differ
diff --git a/Assignments/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/drawable/ic_launcher_foreground.xml b/Assignments/CriminalIntentChapter12/app/src/main/res/drawable-v24/ic_launcher_foreground.xml
similarity index 100%
rename from Assignments/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/drawable/ic_launcher_foreground.xml
rename to Assignments/CriminalIntentChapter12/app/src/main/res/drawable-v24/ic_launcher_foreground.xml
diff --git a/Assignments/CriminalIntentChapter12/app/src/main/res/drawable-xhdpi/ic_solved.png b/Assignments/CriminalIntentChapter12/app/src/main/res/drawable-xhdpi/ic_solved.png
new file mode 100644
index 0000000..6ab438d
Binary files /dev/null and b/Assignments/CriminalIntentChapter12/app/src/main/res/drawable-xhdpi/ic_solved.png differ
diff --git a/Assignments/CriminalIntentChapter12/app/src/main/res/drawable-xxhdpi/ic_solved.png b/Assignments/CriminalIntentChapter12/app/src/main/res/drawable-xxhdpi/ic_solved.png
new file mode 100644
index 0000000..ca05191
Binary files /dev/null and b/Assignments/CriminalIntentChapter12/app/src/main/res/drawable-xxhdpi/ic_solved.png differ
diff --git a/Assignments/CriminalIntentChapter12/app/src/main/res/drawable-xxxhdpi/ic_solved.png b/Assignments/CriminalIntentChapter12/app/src/main/res/drawable-xxxhdpi/ic_solved.png
new file mode 100644
index 0000000..15d3cf4
Binary files /dev/null and b/Assignments/CriminalIntentChapter12/app/src/main/res/drawable-xxxhdpi/ic_solved.png differ
diff --git a/Assignments/fragmentToFragmnetMap/app/src/main/res/drawable/ic_launcher_background.xml b/Assignments/CriminalIntentChapter12/app/src/main/res/drawable/ic_launcher_background.xml
similarity index 100%
rename from Assignments/fragmentToFragmnetMap/app/src/main/res/drawable/ic_launcher_background.xml
rename to Assignments/CriminalIntentChapter12/app/src/main/res/drawable/ic_launcher_background.xml
diff --git a/Assignments/CriminalIntentChapter12/app/src/main/res/layout-land/fragment_crime_landscape.xml b/Assignments/CriminalIntentChapter12/app/src/main/res/layout-land/fragment_crime_landscape.xml
new file mode 100644
index 0000000..573c097
--- /dev/null
+++ b/Assignments/CriminalIntentChapter12/app/src/main/res/layout-land/fragment_crime_landscape.xml
@@ -0,0 +1,38 @@
+
+
+
+
+
+
+
+
+
diff --git a/Assignments/CriminalIntentChapter12/app/src/main/res/layout/activity_fragment.xml b/Assignments/CriminalIntentChapter12/app/src/main/res/layout/activity_fragment.xml
new file mode 100644
index 0000000..5cf169d
--- /dev/null
+++ b/Assignments/CriminalIntentChapter12/app/src/main/res/layout/activity_fragment.xml
@@ -0,0 +1,8 @@
+
+
+
diff --git a/Assignments/CriminalIntentChapter12/app/src/main/res/layout/dialog_date.xml b/Assignments/CriminalIntentChapter12/app/src/main/res/layout/dialog_date.xml
new file mode 100644
index 0000000..3de52bd
--- /dev/null
+++ b/Assignments/CriminalIntentChapter12/app/src/main/res/layout/dialog_date.xml
@@ -0,0 +1,7 @@
+
+
+
diff --git a/Assignments/CriminalIntentChapter12/app/src/main/res/layout/fragment_crime.xml b/Assignments/CriminalIntentChapter12/app/src/main/res/layout/fragment_crime.xml
new file mode 100644
index 0000000..16517cf
--- /dev/null
+++ b/Assignments/CriminalIntentChapter12/app/src/main/res/layout/fragment_crime.xml
@@ -0,0 +1,47 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Assignments/CriminalIntentChapter12/app/src/main/res/layout/fragment_crime_list.xml b/Assignments/CriminalIntentChapter12/app/src/main/res/layout/fragment_crime_list.xml
new file mode 100644
index 0000000..83cf6e0
--- /dev/null
+++ b/Assignments/CriminalIntentChapter12/app/src/main/res/layout/fragment_crime_list.xml
@@ -0,0 +1,5 @@
+
+
\ No newline at end of file
diff --git a/Assignments/CriminalIntentChapter12/app/src/main/res/layout/list_item_crime.xml b/Assignments/CriminalIntentChapter12/app/src/main/res/layout/list_item_crime.xml
new file mode 100644
index 0000000..fea82ba
--- /dev/null
+++ b/Assignments/CriminalIntentChapter12/app/src/main/res/layout/list_item_crime.xml
@@ -0,0 +1,60 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Assignments/CriminalIntentChapter12/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/Assignments/CriminalIntentChapter12/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
new file mode 100644
index 0000000..6f3b755
--- /dev/null
+++ b/Assignments/CriminalIntentChapter12/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Assignments/CriminalIntentChapter12/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/Assignments/CriminalIntentChapter12/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
new file mode 100644
index 0000000..6f3b755
--- /dev/null
+++ b/Assignments/CriminalIntentChapter12/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Assignments/fragmentToFragmnetMap/app/src/main/res/mipmap-hdpi/ic_launcher.webp b/Assignments/CriminalIntentChapter12/app/src/main/res/mipmap-hdpi/ic_launcher.webp
similarity index 100%
rename from Assignments/fragmentToFragmnetMap/app/src/main/res/mipmap-hdpi/ic_launcher.webp
rename to Assignments/CriminalIntentChapter12/app/src/main/res/mipmap-hdpi/ic_launcher.webp
diff --git a/Assignments/fragmentToFragmnetMap/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp b/Assignments/CriminalIntentChapter12/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp
similarity index 100%
rename from Assignments/fragmentToFragmnetMap/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp
rename to Assignments/CriminalIntentChapter12/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp
diff --git a/Assignments/fragmentToFragmnetMap/app/src/main/res/mipmap-mdpi/ic_launcher.webp b/Assignments/CriminalIntentChapter12/app/src/main/res/mipmap-mdpi/ic_launcher.webp
similarity index 100%
rename from Assignments/fragmentToFragmnetMap/app/src/main/res/mipmap-mdpi/ic_launcher.webp
rename to Assignments/CriminalIntentChapter12/app/src/main/res/mipmap-mdpi/ic_launcher.webp
diff --git a/Assignments/fragmentToFragmnetMap/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp b/Assignments/CriminalIntentChapter12/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp
similarity index 100%
rename from Assignments/fragmentToFragmnetMap/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp
rename to Assignments/CriminalIntentChapter12/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp
diff --git a/Assignments/fragmentToFragmnetMap/app/src/main/res/mipmap-xhdpi/ic_launcher.webp b/Assignments/CriminalIntentChapter12/app/src/main/res/mipmap-xhdpi/ic_launcher.webp
similarity index 100%
rename from Assignments/fragmentToFragmnetMap/app/src/main/res/mipmap-xhdpi/ic_launcher.webp
rename to Assignments/CriminalIntentChapter12/app/src/main/res/mipmap-xhdpi/ic_launcher.webp
diff --git a/Assignments/fragmentToFragmnetMap/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp b/Assignments/CriminalIntentChapter12/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp
similarity index 100%
rename from Assignments/fragmentToFragmnetMap/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp
rename to Assignments/CriminalIntentChapter12/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp
diff --git a/Assignments/fragmentToFragmnetMap/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp b/Assignments/CriminalIntentChapter12/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp
similarity index 100%
rename from Assignments/fragmentToFragmnetMap/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp
rename to Assignments/CriminalIntentChapter12/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp
diff --git a/Assignments/fragmentToFragmnetMap/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp b/Assignments/CriminalIntentChapter12/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp
similarity index 100%
rename from Assignments/fragmentToFragmnetMap/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp
rename to Assignments/CriminalIntentChapter12/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp
diff --git a/Assignments/fragmentToFragmnetMap/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp b/Assignments/CriminalIntentChapter12/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp
similarity index 100%
rename from Assignments/fragmentToFragmnetMap/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp
rename to Assignments/CriminalIntentChapter12/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp
diff --git a/Assignments/fragmentToFragmnetMap/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp b/Assignments/CriminalIntentChapter12/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp
similarity index 100%
rename from Assignments/fragmentToFragmnetMap/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp
rename to Assignments/CriminalIntentChapter12/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp
diff --git a/Assignments/CriminalIntentChapter12/app/src/main/res/values-night/themes.xml b/Assignments/CriminalIntentChapter12/app/src/main/res/values-night/themes.xml
new file mode 100644
index 0000000..94fbbd4
--- /dev/null
+++ b/Assignments/CriminalIntentChapter12/app/src/main/res/values-night/themes.xml
@@ -0,0 +1,7 @@
+
+
+
+
\ No newline at end of file
diff --git a/Assignments/CriminalIntentChapter12/app/src/main/res/values/colors.xml b/Assignments/CriminalIntentChapter12/app/src/main/res/values/colors.xml
new file mode 100644
index 0000000..c8524cd
--- /dev/null
+++ b/Assignments/CriminalIntentChapter12/app/src/main/res/values/colors.xml
@@ -0,0 +1,5 @@
+
+
+ #FF000000
+ #FFFFFFFF
+
\ No newline at end of file
diff --git a/Assignments/CriminalIntentChapter12/app/src/main/res/values/strings.xml b/Assignments/CriminalIntentChapter12/app/src/main/res/values/strings.xml
new file mode 100644
index 0000000..b43366d
--- /dev/null
+++ b/Assignments/CriminalIntentChapter12/app/src/main/res/values/strings.xml
@@ -0,0 +1,12 @@
+
+ CriminalIntentChapter7
+ Enter a title for
+the crime.
+ Title
+ Details
+ Solved
+ Date of crime:
+ Call The Police!
+
+
\ No newline at end of file
diff --git a/Assignments/CriminalIntentChapter12/app/src/main/res/values/themes.xml b/Assignments/CriminalIntentChapter12/app/src/main/res/values/themes.xml
new file mode 100644
index 0000000..8d0d0d7
--- /dev/null
+++ b/Assignments/CriminalIntentChapter12/app/src/main/res/values/themes.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Assignments/fragmentToFragmnetMap/app/src/main/res/xml/backup_rules.xml b/Assignments/CriminalIntentChapter12/app/src/main/res/xml/backup_rules.xml
similarity index 100%
rename from Assignments/fragmentToFragmnetMap/app/src/main/res/xml/backup_rules.xml
rename to Assignments/CriminalIntentChapter12/app/src/main/res/xml/backup_rules.xml
diff --git a/Assignments/fragmentToFragmnetMap/app/src/main/res/xml/data_extraction_rules.xml b/Assignments/CriminalIntentChapter12/app/src/main/res/xml/data_extraction_rules.xml
similarity index 100%
rename from Assignments/fragmentToFragmnetMap/app/src/main/res/xml/data_extraction_rules.xml
rename to Assignments/CriminalIntentChapter12/app/src/main/res/xml/data_extraction_rules.xml
diff --git a/Assignments/CriminalIntentChapter12/app/src/test/java/com/example/criminalintentchapter7/ExampleUnitTest.java b/Assignments/CriminalIntentChapter12/app/src/test/java/com/example/criminalintentchapter7/ExampleUnitTest.java
new file mode 100644
index 0000000..59fb20e
--- /dev/null
+++ b/Assignments/CriminalIntentChapter12/app/src/test/java/com/example/criminalintentchapter7/ExampleUnitTest.java
@@ -0,0 +1,17 @@
+package com.example.criminalintentchapter7;
+
+import org.junit.Test;
+
+import static org.junit.Assert.*;
+
+/**
+ * Example local unit test, which will execute on the development machine (host).
+ *
+ * @see Testing documentation
+ */
+public class ExampleUnitTest {
+ @Test
+ public void addition_isCorrect() {
+ assertEquals(4, 2 + 2);
+ }
+}
\ No newline at end of file
diff --git a/Assignments/FragmentToFragmentMap_CalebFontenot2/build.gradle.kts b/Assignments/CriminalIntentChapter12/build.gradle.kts
similarity index 100%
rename from Assignments/FragmentToFragmentMap_CalebFontenot2/build.gradle.kts
rename to Assignments/CriminalIntentChapter12/build.gradle.kts
diff --git a/Assignments/FragmentToFragmentMap_CalebFontenot2/gradle.properties b/Assignments/CriminalIntentChapter12/gradle.properties
similarity index 100%
rename from Assignments/FragmentToFragmentMap_CalebFontenot2/gradle.properties
rename to Assignments/CriminalIntentChapter12/gradle.properties
diff --git a/Assignments/fragmentToFragmnetMap/gradle/wrapper/gradle-wrapper.jar b/Assignments/CriminalIntentChapter12/gradle/wrapper/gradle-wrapper.jar
similarity index 100%
rename from Assignments/fragmentToFragmnetMap/gradle/wrapper/gradle-wrapper.jar
rename to Assignments/CriminalIntentChapter12/gradle/wrapper/gradle-wrapper.jar
diff --git a/Assignments/CriminalIntentChapter12/gradle/wrapper/gradle-wrapper.properties b/Assignments/CriminalIntentChapter12/gradle/wrapper/gradle-wrapper.properties
new file mode 100644
index 0000000..939693e
--- /dev/null
+++ b/Assignments/CriminalIntentChapter12/gradle/wrapper/gradle-wrapper.properties
@@ -0,0 +1,6 @@
+#Wed Feb 14 09:54:57 CST 2024
+distributionBase=GRADLE_USER_HOME
+distributionPath=wrapper/dists
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.2-bin.zip
+zipStoreBase=GRADLE_USER_HOME
+zipStorePath=wrapper/dists
diff --git a/Assignments/fragmentToFragmnetMap/gradlew b/Assignments/CriminalIntentChapter12/gradlew
similarity index 100%
rename from Assignments/fragmentToFragmnetMap/gradlew
rename to Assignments/CriminalIntentChapter12/gradlew
diff --git a/Assignments/fragmentToFragmnetMap/gradlew.bat b/Assignments/CriminalIntentChapter12/gradlew.bat
similarity index 100%
rename from Assignments/fragmentToFragmnetMap/gradlew.bat
rename to Assignments/CriminalIntentChapter12/gradlew.bat
diff --git a/Assignments/CriminalIntentChapter12/settings.gradle.kts b/Assignments/CriminalIntentChapter12/settings.gradle.kts
new file mode 100644
index 0000000..31a755f
--- /dev/null
+++ b/Assignments/CriminalIntentChapter12/settings.gradle.kts
@@ -0,0 +1,18 @@
+pluginManagement {
+ repositories {
+ google()
+ mavenCentral()
+ gradlePluginPortal()
+ }
+}
+dependencyResolutionManagement {
+ repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
+ repositories {
+ google()
+ mavenCentral()
+ }
+}
+
+rootProject.name = "CriminalIntentChapter7"
+include(":app")
+
\ No newline at end of file
diff --git a/Assignments/CriminalIntentChapter8/.idea/gradle.xml b/Assignments/CriminalIntentChapter8/.idea/gradle.xml
index 32522c1..0897082 100644
--- a/Assignments/CriminalIntentChapter8/.idea/gradle.xml
+++ b/Assignments/CriminalIntentChapter8/.idea/gradle.xml
@@ -1,5 +1,6 @@
+
diff --git a/Assignments/CriminalIntentChapter8/.idea/misc.xml b/Assignments/CriminalIntentChapter8/.idea/misc.xml
index b0137f1..ac801d8 100644
--- a/Assignments/CriminalIntentChapter8/.idea/misc.xml
+++ b/Assignments/CriminalIntentChapter8/.idea/misc.xml
@@ -1,4 +1,3 @@
-
diff --git a/Assignments/CriminalIntentChapter8/app/src/main/AndroidManifest.xml b/Assignments/CriminalIntentChapter8/app/src/main/AndroidManifest.xml
index a4a483f..6e22979 100644
--- a/Assignments/CriminalIntentChapter8/app/src/main/AndroidManifest.xml
+++ b/Assignments/CriminalIntentChapter8/app/src/main/AndroidManifest.xml
@@ -21,6 +21,9 @@
+
+
\ No newline at end of file
diff --git a/Assignments/CriminalIntentChapter8/app/src/main/java/com/example/criminalintentchapter8/CrimeActivity.java b/Assignments/CriminalIntentChapter8/app/src/main/java/com/example/criminalintentchapter8/CrimeActivity.java
index a6626d1..8a54d55 100644
--- a/Assignments/CriminalIntentChapter8/app/src/main/java/com/example/criminalintentchapter8/CrimeActivity.java
+++ b/Assignments/CriminalIntentChapter8/app/src/main/java/com/example/criminalintentchapter8/CrimeActivity.java
@@ -4,11 +4,25 @@ import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
+import android.content.Context;
+import android.content.Intent;
import android.os.Bundle;
+import java.util.UUID;
+
public class CrimeActivity extends SingleFragmentActivity {
@Override
protected Fragment createFragment() {
- return new CrimeFragment();
+ //return new CrimeFragment();
+ UUID crimeId = (UUID) getIntent().getSerializableExtra(EXTRA_CRIME_ID);
+ return CrimeFragment.newInstance(crimeId);
}
+
+ private static final String EXTRA_CRIME_ID = "com.example.criminalintentchapte.crime_id";
+ public static Intent newIntent(Context packageContext, UUID crimeID) {
+ Intent intent = new Intent(packageContext, CrimeActivity.class);
+ intent.putExtra(EXTRA_CRIME_ID, crimeID);
+ return intent;
+ }
+
}
\ No newline at end of file
diff --git a/Assignments/CriminalIntentChapter8/app/src/main/java/com/example/criminalintentchapter8/CrimeFragment.java b/Assignments/CriminalIntentChapter8/app/src/main/java/com/example/criminalintentchapter8/CrimeFragment.java
index c631960..e15d1c9 100644
--- a/Assignments/CriminalIntentChapter8/app/src/main/java/com/example/criminalintentchapter8/CrimeFragment.java
+++ b/Assignments/CriminalIntentChapter8/app/src/main/java/com/example/criminalintentchapter8/CrimeFragment.java
@@ -16,13 +16,21 @@ import android.widget.EditText;
import java.text.SimpleDateFormat;
import java.util.Locale;
+import java.util.UUID;
public class CrimeFragment extends Fragment {
+ private static final String ARG_CRIME_ID = "crime_id";
private Crime mCrime;
private EditText mTitleField;
private CheckBox mSolvedCheckBox;
private Button mDateButton;
-
+public static CrimeFragment newInstance(UUID crimeID) {
+ Bundle args = new Bundle();
+ args.putSerializable(ARG_CRIME_ID, crimeID);
+ CrimeFragment fragment = new CrimeFragment();
+ fragment.setArguments(args);
+ return fragment;
+}
public CrimeFragment() {
// Required empty public constructor
}
@@ -31,7 +39,9 @@ public class CrimeFragment extends Fragment {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
- mCrime = new Crime();
+ //mCrime = new Crime();
+ UUID crimeID = (UUID) getActivity().getIntent().getSerializableExtra(CrimeActivity.EXTRA_CRIME_ID);
+ mCrime = CrimeLab.get(getActivity()).getCrime(crimeID);
}
@@ -43,6 +53,7 @@ public class CrimeFragment extends Fragment {
mTitleField = (EditText)
v.findViewById(R.id.crime_title);
+ mTitleField.setText(mCrime.getTitle());
mTitleField.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
@@ -61,6 +72,7 @@ public class CrimeFragment extends Fragment {
});
mSolvedCheckBox = (CheckBox) v.findViewById(R.id.crime_solved);
+ mSolvedCheckBox.setChecked(mCrime.isSolved());
mSolvedCheckBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener()
{
diff --git a/Assignments/CriminalIntentChapter8/app/src/main/java/com/example/criminalintentchapter8/CrimeListFragment.java b/Assignments/CriminalIntentChapter8/app/src/main/java/com/example/criminalintentchapter8/CrimeListFragment.java
index 1ae4db9..072f7ac 100644
--- a/Assignments/CriminalIntentChapter8/app/src/main/java/com/example/criminalintentchapter8/CrimeListFragment.java
+++ b/Assignments/CriminalIntentChapter8/app/src/main/java/com/example/criminalintentchapter8/CrimeListFragment.java
@@ -1,12 +1,16 @@
package com.example.criminalintentchapter8;
+import android.content.Intent;
import android.graphics.Rect;
+import android.media.Image;
import android.os.Bundle;
import android.text.Layout;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
+import android.widget.ImageView;
import android.widget.TextView;
+import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
@@ -31,22 +35,33 @@ public class CrimeListFragment extends Fragment {
return view;
}
- private class CrimeHolder extends RecyclerView.ViewHolder {
+ private class CrimeHolder extends RecyclerView.ViewHolder implements View.OnClickListener{
private TextView mTitleTextView;
private TextView mDateTextView;
+ private ImageView mSolvedImageView;
private Crime mCrime;
public void bind(Crime crime) {
mCrime = crime;
mTitleTextView.setText(mCrime.getTitle());
mDateTextView.setText(mCrime.getDate().toString());
+ mSolvedImageView.setVisibility(crime.isSolved() ? View.VISIBLE : View.GONE);
}
public CrimeHolder(LayoutInflater inflater,
ViewGroup parent) {
super(inflater.inflate(R.layout.list_item_crime, parent, false));
-
+ itemView.setOnClickListener(this);
mTitleTextView = (TextView) itemView.findViewById(R.id.crime_title);
mDateTextView = (TextView) itemView.findViewById(R.id.crime_date);
+ mSolvedImageView = (ImageView) itemView.findViewById(R.id.crime_solved);
+ }
+ @Override
+ public void onClick(View v) {
+ Intent intent = CrimeActivity.newIntent(getActivity(), mCrime.getId());
+ startActivity(intent);
+ /*
+ Toast.makeText(getActivity(), mCrime.getTitle() + " clicked!", Toast.LENGTH_SHORT).show();
+ */
}
}
private class CrimeAdapter extends RecyclerView.Adapter {
diff --git a/Assignments/CriminalIntentChapter8/app/src/main/res/drawable-xxxhdpi/ic_solved.png b/Assignments/CriminalIntentChapter8/app/src/main/res/drawable-xxxhdpi/ic_solved.png
new file mode 100644
index 0000000..15d3cf4
Binary files /dev/null and b/Assignments/CriminalIntentChapter8/app/src/main/res/drawable-xxxhdpi/ic_solved.png differ
diff --git a/Assignments/CriminalIntentChapter8/app/src/main/res/layout/fragment_crime.xml b/Assignments/CriminalIntentChapter8/app/src/main/res/layout/fragment_crime.xml
index 16517cf..8929b11 100644
--- a/Assignments/CriminalIntentChapter8/app/src/main/res/layout/fragment_crime.xml
+++ b/Assignments/CriminalIntentChapter8/app/src/main/res/layout/fragment_crime.xml
@@ -24,17 +24,15 @@ android:text="@string/crime_details_label"/>
+ android:layout_gravity="center"
+ android:orientation="vertical">
+ android:layout_marginRight="16dp" />
-
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content" />
diff --git a/Assignments/CriminalIntentChapter8/app/src/main/res/layout/list_item_crime.xml b/Assignments/CriminalIntentChapter8/app/src/main/res/layout/list_item_crime.xml
index 3e07eb4..e3a56b8 100644
--- a/Assignments/CriminalIntentChapter8/app/src/main/res/layout/list_item_crime.xml
+++ b/Assignments/CriminalIntentChapter8/app/src/main/res/layout/list_item_crime.xml
@@ -1,19 +1,38 @@
-
+ android:text="Crime title"
+ android:textSize="18sp"
+ app:layout_constraintEnd_toStartOf="@+id/crime_solved"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toTopOf="parent" />
-
\ No newline at end of file
+ android:text="Crime date"
+ app:layout_constraintBottom_toBottomOf="parent"
+ app:layout_constraintEnd_toStartOf="@+id/crime_solved"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toBottomOf="@+id/crime_title" />
+
+
+
\ No newline at end of file
diff --git a/Assignments/CriminalIntentChapter8/build.gradle.kts b/Assignments/CriminalIntentChapter8/build.gradle.kts
index 196e647..a8c7a22 100644
--- a/Assignments/CriminalIntentChapter8/build.gradle.kts
+++ b/Assignments/CriminalIntentChapter8/build.gradle.kts
@@ -1,4 +1,4 @@
// Top-level build file where you can add configuration options common to all sub-projects/modules.
plugins {
- id("com.android.application") version "8.2.2" apply false
+ id("com.android.application") version "8.3.0" apply false
}
\ No newline at end of file
diff --git a/Assignments/CriminalIntentChapter8/gradle/wrapper/gradle-wrapper.properties b/Assignments/CriminalIntentChapter8/gradle/wrapper/gradle-wrapper.properties
index 939693e..d0972f0 100644
--- a/Assignments/CriminalIntentChapter8/gradle/wrapper/gradle-wrapper.properties
+++ b/Assignments/CriminalIntentChapter8/gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1,6 @@
#Wed Feb 14 09:54:57 CST 2024
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-8.2-bin.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.4-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
diff --git a/Assignments/FragmentToFragmentMap-014fa169-2ea2-4df4-8be1-b82f01592f1c.zip b/Assignments/FragmentToFragmentMap-014fa169-2ea2-4df4-8be1-b82f01592f1c.zip
new file mode 100644
index 0000000..eca5ea4
Binary files /dev/null and b/Assignments/FragmentToFragmentMap-014fa169-2ea2-4df4-8be1-b82f01592f1c.zip differ
diff --git a/Assignments/Mp2/.gitignore b/Assignments/Mp2/.gitignore
new file mode 100644
index 0000000..aa724b7
--- /dev/null
+++ b/Assignments/Mp2/.gitignore
@@ -0,0 +1,15 @@
+*.iml
+.gradle
+/local.properties
+/.idea/caches
+/.idea/libraries
+/.idea/modules.xml
+/.idea/workspace.xml
+/.idea/navEditor.xml
+/.idea/assetWizardSettings.xml
+.DS_Store
+/build
+/captures
+.externalNativeBuild
+.cxx
+local.properties
diff --git a/Assignments/Mp2/.idea/.gitignore b/Assignments/Mp2/.idea/.gitignore
new file mode 100644
index 0000000..26d3352
--- /dev/null
+++ b/Assignments/Mp2/.idea/.gitignore
@@ -0,0 +1,3 @@
+# Default ignored files
+/shelf/
+/workspace.xml
diff --git a/Assignments/Mp2/.idea/appInsightsSettings.xml b/Assignments/Mp2/.idea/appInsightsSettings.xml
new file mode 100644
index 0000000..371f2e2
--- /dev/null
+++ b/Assignments/Mp2/.idea/appInsightsSettings.xml
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Assignments/Mp2/.idea/compiler.xml b/Assignments/Mp2/.idea/compiler.xml
new file mode 100644
index 0000000..b589d56
--- /dev/null
+++ b/Assignments/Mp2/.idea/compiler.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Assignments/Mp2/.idea/deploymentTargetDropDown.xml b/Assignments/Mp2/.idea/deploymentTargetDropDown.xml
new file mode 100644
index 0000000..0c0c338
--- /dev/null
+++ b/Assignments/Mp2/.idea/deploymentTargetDropDown.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Assignments/Mp2/.idea/discord.xml b/Assignments/Mp2/.idea/discord.xml
new file mode 100644
index 0000000..d8e9561
--- /dev/null
+++ b/Assignments/Mp2/.idea/discord.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Assignments/Mp2/.idea/gradle.xml b/Assignments/Mp2/.idea/gradle.xml
new file mode 100644
index 0000000..0897082
--- /dev/null
+++ b/Assignments/Mp2/.idea/gradle.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Assignments/Mp2/.idea/migrations.xml b/Assignments/Mp2/.idea/migrations.xml
new file mode 100644
index 0000000..f8051a6
--- /dev/null
+++ b/Assignments/Mp2/.idea/migrations.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Assignments/Mp2/.idea/misc.xml b/Assignments/Mp2/.idea/misc.xml
new file mode 100644
index 0000000..8978d23
--- /dev/null
+++ b/Assignments/Mp2/.idea/misc.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Assignments/Mp2/.idea/vcs.xml b/Assignments/Mp2/.idea/vcs.xml
new file mode 100644
index 0000000..b2bdec2
--- /dev/null
+++ b/Assignments/Mp2/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Assignments/Mp2/app/.gitignore b/Assignments/Mp2/app/.gitignore
new file mode 100644
index 0000000..42afabf
--- /dev/null
+++ b/Assignments/Mp2/app/.gitignore
@@ -0,0 +1 @@
+/build
\ No newline at end of file
diff --git a/Assignments/Mp2/app/build.gradle.kts b/Assignments/Mp2/app/build.gradle.kts
new file mode 100644
index 0000000..94c82fc
--- /dev/null
+++ b/Assignments/Mp2/app/build.gradle.kts
@@ -0,0 +1,40 @@
+plugins {
+ alias(libs.plugins.android.application)
+}
+
+android {
+ namespace = "com.example.mp2"
+ compileSdk = 34
+
+ defaultConfig {
+ applicationId = "com.example.mp2"
+ minSdk = 24
+ targetSdk = 34
+ versionCode = 1
+ versionName = "1.0"
+
+ testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
+ }
+
+ buildTypes {
+ release {
+ isMinifyEnabled = false
+ proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro")
+ }
+ }
+ compileOptions {
+ sourceCompatibility = JavaVersion.VERSION_1_8
+ targetCompatibility = JavaVersion.VERSION_1_8
+ }
+}
+
+dependencies {
+
+ implementation(libs.appcompat)
+ implementation(libs.material)
+ implementation(libs.activity)
+ implementation(libs.constraintlayout)
+ testImplementation(libs.junit)
+ androidTestImplementation(libs.ext.junit)
+ androidTestImplementation(libs.espresso.core)
+}
\ No newline at end of file
diff --git a/Assignments/Mp2/app/proguard-rules.pro b/Assignments/Mp2/app/proguard-rules.pro
new file mode 100644
index 0000000..481bb43
--- /dev/null
+++ b/Assignments/Mp2/app/proguard-rules.pro
@@ -0,0 +1,21 @@
+# Add project specific ProGuard rules here.
+# You can control the set of applied configuration files using the
+# proguardFiles setting in build.gradle.
+#
+# For more details, see
+# http://developer.android.com/guide/developing/tools/proguard.html
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+# public *;
+#}
+
+# Uncomment this to preserve the line number information for
+# debugging stack traces.
+#-keepattributes SourceFile,LineNumberTable
+
+# If you keep the line number information, uncomment this to
+# hide the original source file name.
+#-renamesourcefileattribute SourceFile
\ No newline at end of file
diff --git a/Assignments/Mp2/app/src/androidTest/java/com/example/mp2/ExampleInstrumentedTest.java b/Assignments/Mp2/app/src/androidTest/java/com/example/mp2/ExampleInstrumentedTest.java
new file mode 100644
index 0000000..4d2c268
--- /dev/null
+++ b/Assignments/Mp2/app/src/androidTest/java/com/example/mp2/ExampleInstrumentedTest.java
@@ -0,0 +1,26 @@
+package com.example.mp2;
+
+import android.content.Context;
+
+import androidx.test.platform.app.InstrumentationRegistry;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import static org.junit.Assert.*;
+
+/**
+ * Instrumented test, which will execute on an Android device.
+ *
+ * @see Testing documentation
+ */
+@RunWith(AndroidJUnit4.class)
+public class ExampleInstrumentedTest {
+ @Test
+ public void useAppContext() {
+ // Context of the app under test.
+ Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext();
+ assertEquals("com.example.mp2", appContext.getPackageName());
+ }
+}
\ No newline at end of file
diff --git a/Assignments/Mp2/app/src/main/AndroidManifest.xml b/Assignments/Mp2/app/src/main/AndroidManifest.xml
new file mode 100644
index 0000000..85e23c3
--- /dev/null
+++ b/Assignments/Mp2/app/src/main/AndroidManifest.xml
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Assignments/Mp2/app/src/main/java/com/example/mp2/A.java b/Assignments/Mp2/app/src/main/java/com/example/mp2/A.java
new file mode 100644
index 0000000..e62f88e
--- /dev/null
+++ b/Assignments/Mp2/app/src/main/java/com/example/mp2/A.java
@@ -0,0 +1,54 @@
+package com.example.mp2;
+
+import androidx.annotation.Nullable;
+import androidx.fragment.app.Fragment;
+
+import android.content.Intent;
+import android.os.Bundle;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.TreeMap;
+
+public class A extends GenericActivityThatCreatesFragments
+{
+ private List contacts;
+
+ @Override
+ protected Fragment createFragment()
+ {
+ contacts = new ArrayList();
+ for (int i = 0; i < 10; ++i) {
+ contacts.add(new Contact("name" + i, "phone " + (i + 1)));
+ }
+ Holder holder = new Holder();
+ Bundle b = new Bundle();
+ b.putSerializable("ID_MAP_ORIGINAL_FROM_A",(Serializable) this.contacts);
+ holder.setArguments( b );
+ return holder;
+ }
+
+
+
+ @Override
+ protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent i)
+ {
+ super.onActivityResult(requestCode, resultCode, i);
+ if (requestCode == 888)
+ {
+ //the i.getSerializableExtra will convert the TreeMap of the bundle into HashMap
+ //so create from the HashMap a TreeMap
+ Map m = ( Map ) i.getSerializableExtra("ID_SORTED_MAP_FROM_F2");
+ TreeMap t = new TreeMap( ( Map)i.getSerializableExtra("ID_SORTED_MAP_FROM_F2"));
+
+ Bundle b = new Bundle();
+ b.putSerializable("ID_SORTED_MAP_FROM_A", (Serializable) t);
+
+ getGenericFragment().setArguments( b );
+
+ }
+ }
+
+}
diff --git a/Assignments/Mp2/app/src/main/java/com/example/mp2/B.java b/Assignments/Mp2/app/src/main/java/com/example/mp2/B.java
new file mode 100644
index 0000000..994e561
--- /dev/null
+++ b/Assignments/Mp2/app/src/main/java/com/example/mp2/B.java
@@ -0,0 +1,28 @@
+package com.example.mp2;
+
+import android.content.Intent;
+import android.os.Bundle;
+
+import androidx.fragment.app.Fragment;
+
+import java.io.Serializable;
+import java.util.Map;
+
+public class B extends GenericActivityThatCreatesFragments
+{
+Map map;
+
+ @Override
+ protected Fragment createFragment()
+ {
+ Intent i = getIntent();
+ Bundle b = i.getBundleExtra("ID_F1");
+ map = ( Map ) b.getSerializable("MAP_FROM_F1" );
+ F2 f2 = new F2();
+ Bundle b1 = new Bundle();
+ b1.putSerializable("ID_MAP_ORIGINAL_FROM_B",(Serializable) this.map);
+ f2.setArguments( b1 );
+ return f2;
+ }
+
+}
\ No newline at end of file
diff --git a/Assignments/Mp2/app/src/main/java/com/example/mp2/Contact.java b/Assignments/Mp2/app/src/main/java/com/example/mp2/Contact.java
new file mode 100644
index 0000000..abcbc91
--- /dev/null
+++ b/Assignments/Mp2/app/src/main/java/com/example/mp2/Contact.java
@@ -0,0 +1,38 @@
+package com.example.mp2;
+
+import java.util.UUID;
+
+public class Contact
+{
+ private UUID id;
+ private String name;
+ private String phone;
+
+ public UUID getId()
+ {
+ return id;
+ }
+ public String getName()
+ {
+ return name;
+ }
+ public void setName(String name)
+ {
+ this.name = name;
+ }
+ public String getPhone()
+ {
+ return phone;
+ }
+ public String setPhone(String phone)
+ {
+ return this.phone = phone;
+ }
+
+ public Contact(String name, String phone)
+ {
+ this.id = UUID.randomUUID();
+ this.name = name;
+ this.phone = phone;
+ }
+}
diff --git a/Assignments/Mp2/app/src/main/java/com/example/mp2/F2.java b/Assignments/Mp2/app/src/main/java/com/example/mp2/F2.java
new file mode 100644
index 0000000..1ad2d52
--- /dev/null
+++ b/Assignments/Mp2/app/src/main/java/com/example/mp2/F2.java
@@ -0,0 +1,85 @@
+package com.example.mp2;
+
+import android.content.Intent;
+import android.os.Bundle;
+import android.util.Log;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.Button;
+import android.widget.TextView;
+
+import androidx.fragment.app.Fragment;
+
+import java.io.Serializable;
+import java.util.Map;
+import java.util.TreeMap;
+
+public class F2 extends Fragment //Resebles teh RecycleView
+{
+ TextView originalMap;
+ TextView sortedMap;
+ Button sendBackToF1;
+ Map map;
+ Map treeMap;
+ public F2()
+ {
+ }
+
+ @Override
+ public void onCreate(Bundle savedInstanceState)
+ {
+ super.onCreate(savedInstanceState);
+
+ Bundle b = getArguments();
+ map = (Map) b.getSerializable("ID_MAP_ORIGINAL_FROM_B");
+
+ }
+
+ @Override
+ public View onCreateView(
+ LayoutInflater inflater, ViewGroup container,
+ Bundle savedInstanceState)
+ {
+ View v = inflater.inflate(R.layout.f2, container, false);
+ originalMap = v.findViewById(R.id.textViewMapOriginalAsParameter_2);
+ sortedMap = v.findViewById(R.id.textViewMapSorted_2);
+ originalMap.setText(map.toString());
+ sendBackToF1 = v.findViewById(R.id.buttonSendToF2_2);
+
+ treeMap = new TreeMap( map);
+
+ sortedMap.setText(treeMap.toString());
+
+ originalMap.setOnClickListener(new View.OnClickListener()
+ {
+ @Override
+ public void onClick(View v)
+ {
+
+ Intent i = new Intent();
+ treeMap.put("nona", "extra 1");
+ treeMap.put("paula", "extra 2");
+ i.putExtra("ID_SORTED_MAP_FROM_F2", (Serializable) F2.this.treeMap);
+ getActivity().setResult(888, i);
+ }
+ });
+ this.sendBackToF1.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+
+ Intent i = new Intent();
+ treeMap.put("nona", "extra 1");
+ treeMap.put("paula", "extra 2");
+ i.putExtra("ID_SORTED_MAP_FROM_F2", (Serializable) F2.this.treeMap);
+ getActivity().setResult(888, i);
+
+ GenericActivityThatCreatesFragments a = (GenericActivityThatCreatesFragments) getActivity();
+ a.finish();
+
+ }
+ });
+
+ return v;
+ }
+}
\ No newline at end of file
diff --git a/Assignments/Mp2/app/src/main/java/com/example/mp2/GenericActivityThatCreatesFragments.java b/Assignments/Mp2/app/src/main/java/com/example/mp2/GenericActivityThatCreatesFragments.java
new file mode 100644
index 0000000..05a948f
--- /dev/null
+++ b/Assignments/Mp2/app/src/main/java/com/example/mp2/GenericActivityThatCreatesFragments.java
@@ -0,0 +1,32 @@
+package com.example.mp2;
+
+import android.os.Bundle;
+
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.fragment.app.Fragment;
+import androidx.fragment.app.FragmentManager;
+
+abstract public class
+GenericActivityThatCreatesFragments extends AppCompatActivity
+{
+ Fragment fragment;
+ public Fragment getGenericFragment()
+ {
+ return fragment;
+ };
+ protected abstract Fragment createFragment();
+ @Override
+ protected void onCreate(Bundle savedInstanceState)
+ {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.a);
+ FragmentManager fm = getSupportFragmentManager();
+ this.fragment = fm.findFragmentById(R.id.f1_container);
+ if (this.fragment == null)
+ {
+ this.fragment = createFragment();
+ fm.beginTransaction().add(R.id.f1_container, fragment).commit();
+ }
+ }
+
+}
\ No newline at end of file
diff --git a/Assignments/Mp2/app/src/main/java/com/example/mp2/Holder.java b/Assignments/Mp2/app/src/main/java/com/example/mp2/Holder.java
new file mode 100644
index 0000000..862cf8a
--- /dev/null
+++ b/Assignments/Mp2/app/src/main/java/com/example/mp2/Holder.java
@@ -0,0 +1,90 @@
+package com.example.mp2;
+
+import android.os.Bundle;
+
+import androidx.fragment.app.Fragment;
+import androidx.recyclerview.widget.LinearLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
+
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.TextView;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.UUID;
+
+public class Holder extends Fragment //Resembles the RecycleView
+{
+ private RecyclerView idsRecyclerView;
+ private UUIDAdapter adapter;
+ List ids;
+
+
+ private void updateUI()
+ {
+ if (this.adapter == null) {
+ this.adapter = new UUIDAdapter(this.ids);
+ this.idsRecyclerView.setAdapter(this.adapter);
+ } else {
+ this.adapter.notifyDataSetChanged();
+ }
+ }
+
+
+
+ @Override
+ public void onCreate(Bundle savedInstanceState)
+ {
+ super.onCreate(savedInstanceState);
+ this.ids = new ArrayList<>();
+ ids.add(UUID.randomUUID());
+ ids.add(UUID.randomUUID());
+ }
+ @Override
+ public View onCreateView(
+ LayoutInflater inflater, ViewGroup container,
+ Bundle savedInstanceState) {
+
+ View view = inflater.inflate(R.layout.fragment_recycler_view, container, false);
+ idsRecyclerView = (RecyclerView) view.findViewById(R.id.recycler_view);
+ idsRecyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
+ updateUI();
+ return view;
+
+
+ }
+
+ private class UUIDHolder extends RecyclerView.ViewHolder implements View.OnClickListener
+ {
+ private List id;
+ private TextView idTextView;
+
+ public void bind(UUID id) {
+ this.id = id;
+ this.idTextView.setText(id.toString());
+ }
+
+ public UUIDHolder(LayoutInflater inflater, ViewGroup parent)
+ {
+ super(inflater.inflate(R.layout.f1, parent, false));
+ itemView.setOnClickListener(this);
+ idTextView = this.itemView.findViewById(R.id.textViewUUID);
+
+ }
+
+ @Override
+ public void onClick(View view) {
+ Holder.this.ids.add(UUID.randomUUID());
+ updateUI();
+ }
+
+ public void notifyDataSetChanged() {
+
+ }
+ }
+
+
+}
\ No newline at end of file
diff --git a/Assignments/Mp2/app/src/main/res/drawable/ic_launcher_background.xml b/Assignments/Mp2/app/src/main/res/drawable/ic_launcher_background.xml
new file mode 100644
index 0000000..07d5da9
--- /dev/null
+++ b/Assignments/Mp2/app/src/main/res/drawable/ic_launcher_background.xml
@@ -0,0 +1,170 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Assignments/fragmentToFragmnetMap/app/src/main/res/drawable-v24/ic_launcher_foreground.xml b/Assignments/Mp2/app/src/main/res/drawable/ic_launcher_foreground.xml
similarity index 100%
rename from Assignments/fragmentToFragmnetMap/app/src/main/res/drawable-v24/ic_launcher_foreground.xml
rename to Assignments/Mp2/app/src/main/res/drawable/ic_launcher_foreground.xml
diff --git a/Assignments/fragmentToFragmnetMap/app/src/main/res/layout/a.xml b/Assignments/Mp2/app/src/main/res/layout/a.xml
similarity index 100%
rename from Assignments/fragmentToFragmnetMap/app/src/main/res/layout/a.xml
rename to Assignments/Mp2/app/src/main/res/layout/a.xml
diff --git a/Assignments/fragmentToFragmnetMap/app/src/main/res/layout/activity_start.xml b/Assignments/Mp2/app/src/main/res/layout/activity_start.xml
similarity index 100%
rename from Assignments/fragmentToFragmnetMap/app/src/main/res/layout/activity_start.xml
rename to Assignments/Mp2/app/src/main/res/layout/activity_start.xml
diff --git a/Assignments/Mp2/app/src/main/res/layout/contact.xml b/Assignments/Mp2/app/src/main/res/layout/contact.xml
new file mode 100644
index 0000000..fc63b7d
--- /dev/null
+++ b/Assignments/Mp2/app/src/main/res/layout/contact.xml
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Assignments/Mp2/app/src/main/res/layout/f1.xml b/Assignments/Mp2/app/src/main/res/layout/f1.xml
new file mode 100644
index 0000000..97a9207
--- /dev/null
+++ b/Assignments/Mp2/app/src/main/res/layout/f1.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Assignments/Mp2/app/src/main/res/layout/f2.xml b/Assignments/Mp2/app/src/main/res/layout/f2.xml
new file mode 100644
index 0000000..801c34e
--- /dev/null
+++ b/Assignments/Mp2/app/src/main/res/layout/f2.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Assignments/Mp2/app/src/main/res/layout/fragment_recycler_view.xml b/Assignments/Mp2/app/src/main/res/layout/fragment_recycler_view.xml
new file mode 100644
index 0000000..44a6079
--- /dev/null
+++ b/Assignments/Mp2/app/src/main/res/layout/fragment_recycler_view.xml
@@ -0,0 +1,8 @@
+
+
+
+
diff --git a/Assignments/Mp2/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/Assignments/Mp2/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
new file mode 100644
index 0000000..6f3b755
--- /dev/null
+++ b/Assignments/Mp2/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Assignments/Mp2/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/Assignments/Mp2/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
new file mode 100644
index 0000000..6f3b755
--- /dev/null
+++ b/Assignments/Mp2/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Assignments/Mp2/app/src/main/res/mipmap-hdpi/ic_launcher.webp b/Assignments/Mp2/app/src/main/res/mipmap-hdpi/ic_launcher.webp
new file mode 100644
index 0000000..c209e78
Binary files /dev/null and b/Assignments/Mp2/app/src/main/res/mipmap-hdpi/ic_launcher.webp differ
diff --git a/Assignments/Mp2/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp b/Assignments/Mp2/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp
new file mode 100644
index 0000000..b2dfe3d
Binary files /dev/null and b/Assignments/Mp2/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp differ
diff --git a/Assignments/Mp2/app/src/main/res/mipmap-mdpi/ic_launcher.webp b/Assignments/Mp2/app/src/main/res/mipmap-mdpi/ic_launcher.webp
new file mode 100644
index 0000000..4f0f1d6
Binary files /dev/null and b/Assignments/Mp2/app/src/main/res/mipmap-mdpi/ic_launcher.webp differ
diff --git a/Assignments/Mp2/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp b/Assignments/Mp2/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp
new file mode 100644
index 0000000..62b611d
Binary files /dev/null and b/Assignments/Mp2/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp differ
diff --git a/Assignments/Mp2/app/src/main/res/mipmap-xhdpi/ic_launcher.webp b/Assignments/Mp2/app/src/main/res/mipmap-xhdpi/ic_launcher.webp
new file mode 100644
index 0000000..948a307
Binary files /dev/null and b/Assignments/Mp2/app/src/main/res/mipmap-xhdpi/ic_launcher.webp differ
diff --git a/Assignments/Mp2/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp b/Assignments/Mp2/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp
new file mode 100644
index 0000000..1b9a695
Binary files /dev/null and b/Assignments/Mp2/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp differ
diff --git a/Assignments/Mp2/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp b/Assignments/Mp2/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp
new file mode 100644
index 0000000..28d4b77
Binary files /dev/null and b/Assignments/Mp2/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp differ
diff --git a/Assignments/Mp2/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp b/Assignments/Mp2/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp
new file mode 100644
index 0000000..9287f50
Binary files /dev/null and b/Assignments/Mp2/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp differ
diff --git a/Assignments/Mp2/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp b/Assignments/Mp2/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp
new file mode 100644
index 0000000..aa7d642
Binary files /dev/null and b/Assignments/Mp2/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp differ
diff --git a/Assignments/Mp2/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp b/Assignments/Mp2/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp
new file mode 100644
index 0000000..9126ae3
Binary files /dev/null and b/Assignments/Mp2/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp differ
diff --git a/Assignments/fragmentToFragmnetMap/app/src/main/res/values/colors.xml b/Assignments/Mp2/app/src/main/res/values/colors.xml
similarity index 100%
rename from Assignments/fragmentToFragmnetMap/app/src/main/res/values/colors.xml
rename to Assignments/Mp2/app/src/main/res/values/colors.xml
diff --git a/Assignments/fragmentToFragmnetMap/app/src/main/res/values/strings.xml b/Assignments/Mp2/app/src/main/res/values/strings.xml
similarity index 100%
rename from Assignments/fragmentToFragmnetMap/app/src/main/res/values/strings.xml
rename to Assignments/Mp2/app/src/main/res/values/strings.xml
diff --git a/Assignments/fragmentToFragmnetMap/app/src/main/res/values/themes.xml b/Assignments/Mp2/app/src/main/res/values/themes.xml
similarity index 100%
rename from Assignments/fragmentToFragmnetMap/app/src/main/res/values/themes.xml
rename to Assignments/Mp2/app/src/main/res/values/themes.xml
diff --git a/Assignments/Mp2/app/src/main/res/xml/backup_rules.xml b/Assignments/Mp2/app/src/main/res/xml/backup_rules.xml
new file mode 100644
index 0000000..fa0f996
--- /dev/null
+++ b/Assignments/Mp2/app/src/main/res/xml/backup_rules.xml
@@ -0,0 +1,13 @@
+
+
+
+
\ No newline at end of file
diff --git a/Assignments/Mp2/app/src/main/res/xml/data_extraction_rules.xml b/Assignments/Mp2/app/src/main/res/xml/data_extraction_rules.xml
new file mode 100644
index 0000000..9ee9997
--- /dev/null
+++ b/Assignments/Mp2/app/src/main/res/xml/data_extraction_rules.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Assignments/Mp2/app/src/test/java/com/example/mp2/ExampleUnitTest.java b/Assignments/Mp2/app/src/test/java/com/example/mp2/ExampleUnitTest.java
new file mode 100644
index 0000000..353eff7
--- /dev/null
+++ b/Assignments/Mp2/app/src/test/java/com/example/mp2/ExampleUnitTest.java
@@ -0,0 +1,17 @@
+package com.example.mp2;
+
+import org.junit.Test;
+
+import static org.junit.Assert.*;
+
+/**
+ * Example local unit test, which will execute on the development machine (host).
+ *
+ * @see Testing documentation
+ */
+public class ExampleUnitTest {
+ @Test
+ public void addition_isCorrect() {
+ assertEquals(4, 2 + 2);
+ }
+}
\ No newline at end of file
diff --git a/Assignments/Mp2/build.gradle.kts b/Assignments/Mp2/build.gradle.kts
new file mode 100644
index 0000000..3756278
--- /dev/null
+++ b/Assignments/Mp2/build.gradle.kts
@@ -0,0 +1,4 @@
+// Top-level build file where you can add configuration options common to all sub-projects/modules.
+plugins {
+ alias(libs.plugins.android.application) apply false
+}
\ No newline at end of file
diff --git a/Assignments/Mp2/gradle.properties b/Assignments/Mp2/gradle.properties
new file mode 100644
index 0000000..4387edc
--- /dev/null
+++ b/Assignments/Mp2/gradle.properties
@@ -0,0 +1,21 @@
+# Project-wide Gradle settings.
+# IDE (e.g. Android Studio) users:
+# Gradle settings configured through the IDE *will override*
+# any settings specified in this file.
+# For more details on how to configure your build environment visit
+# http://www.gradle.org/docs/current/userguide/build_environment.html
+# Specifies the JVM arguments used for the daemon process.
+# The setting is particularly useful for tweaking memory settings.
+org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8
+# When configured, Gradle will run in incubating parallel mode.
+# This option should only be used with decoupled projects. For more details, visit
+# https://developer.android.com/r/tools/gradle-multi-project-decoupled-projects
+# org.gradle.parallel=true
+# AndroidX package structure to make it clearer which packages are bundled with the
+# Android operating system, and which are packaged with your app's APK
+# https://developer.android.com/topic/libraries/support-library/androidx-rn
+android.useAndroidX=true
+# Enables namespacing of each library's R class so that its R class includes only the
+# resources declared in the library itself and none from the library's dependencies,
+# thereby reducing the size of the R class for that library
+android.nonTransitiveRClass=true
\ No newline at end of file
diff --git a/Assignments/Mp2/gradle/libs.versions.toml b/Assignments/Mp2/gradle/libs.versions.toml
new file mode 100644
index 0000000..4528144
--- /dev/null
+++ b/Assignments/Mp2/gradle/libs.versions.toml
@@ -0,0 +1,22 @@
+[versions]
+agp = "8.3.0"
+junit = "4.13.2"
+junitVersion = "1.1.5"
+espressoCore = "3.5.1"
+appcompat = "1.6.1"
+material = "1.11.0"
+activity = "1.8.2"
+constraintlayout = "2.1.4"
+
+[libraries]
+junit = { group = "junit", name = "junit", version.ref = "junit" }
+ext-junit = { group = "androidx.test.ext", name = "junit", version.ref = "junitVersion" }
+espresso-core = { group = "androidx.test.espresso", name = "espresso-core", version.ref = "espressoCore" }
+appcompat = { group = "androidx.appcompat", name = "appcompat", version.ref = "appcompat" }
+material = { group = "com.google.android.material", name = "material", version.ref = "material" }
+activity = { group = "androidx.activity", name = "activity", version.ref = "activity" }
+constraintlayout = { group = "androidx.constraintlayout", name = "constraintlayout", version.ref = "constraintlayout" }
+
+[plugins]
+android-application = { id = "com.android.application", version.ref = "agp" }
+
diff --git a/Assignments/Mp2/gradle/wrapper/gradle-wrapper.jar b/Assignments/Mp2/gradle/wrapper/gradle-wrapper.jar
new file mode 100644
index 0000000..e708b1c
Binary files /dev/null and b/Assignments/Mp2/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/Assignments/Mp2/gradle/wrapper/gradle-wrapper.properties b/Assignments/Mp2/gradle/wrapper/gradle-wrapper.properties
new file mode 100644
index 0000000..9176fcf
--- /dev/null
+++ b/Assignments/Mp2/gradle/wrapper/gradle-wrapper.properties
@@ -0,0 +1,6 @@
+#Wed Mar 06 09:31:43 CST 2024
+distributionBase=GRADLE_USER_HOME
+distributionPath=wrapper/dists
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.4-bin.zip
+zipStoreBase=GRADLE_USER_HOME
+zipStorePath=wrapper/dists
diff --git a/Assignments/Mp2/gradlew b/Assignments/Mp2/gradlew
new file mode 100644
index 0000000..4f906e0
--- /dev/null
+++ b/Assignments/Mp2/gradlew
@@ -0,0 +1,185 @@
+#!/usr/bin/env sh
+
+#
+# Copyright 2015 the original author or authors.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+##############################################################################
+##
+## Gradle start up script for UN*X
+##
+##############################################################################
+
+# Attempt to set APP_HOME
+# Resolve links: $0 may be a link
+PRG="$0"
+# Need this for relative symlinks.
+while [ -h "$PRG" ] ; do
+ ls=`ls -ld "$PRG"`
+ link=`expr "$ls" : '.*-> \(.*\)$'`
+ if expr "$link" : '/.*' > /dev/null; then
+ PRG="$link"
+ else
+ PRG=`dirname "$PRG"`"/$link"
+ fi
+done
+SAVED="`pwd`"
+cd "`dirname \"$PRG\"`/" >/dev/null
+APP_HOME="`pwd -P`"
+cd "$SAVED" >/dev/null
+
+APP_NAME="Gradle"
+APP_BASE_NAME=`basename "$0"`
+
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
+
+# Use the maximum available, or set MAX_FD != -1 to use that value.
+MAX_FD="maximum"
+
+warn () {
+ echo "$*"
+}
+
+die () {
+ echo
+ echo "$*"
+ echo
+ exit 1
+}
+
+# OS specific support (must be 'true' or 'false').
+cygwin=false
+msys=false
+darwin=false
+nonstop=false
+case "`uname`" in
+ CYGWIN* )
+ cygwin=true
+ ;;
+ Darwin* )
+ darwin=true
+ ;;
+ MINGW* )
+ msys=true
+ ;;
+ NONSTOP* )
+ nonstop=true
+ ;;
+esac
+
+CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
+
+
+# Determine the Java command to use to start the JVM.
+if [ -n "$JAVA_HOME" ] ; then
+ if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+ # IBM's JDK on AIX uses strange locations for the executables
+ JAVACMD="$JAVA_HOME/jre/sh/java"
+ else
+ JAVACMD="$JAVA_HOME/bin/java"
+ fi
+ if [ ! -x "$JAVACMD" ] ; then
+ die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+ fi
+else
+ JAVACMD="java"
+ which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+fi
+
+# Increase the maximum file descriptors if we can.
+if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
+ MAX_FD_LIMIT=`ulimit -H -n`
+ if [ $? -eq 0 ] ; then
+ if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
+ MAX_FD="$MAX_FD_LIMIT"
+ fi
+ ulimit -n $MAX_FD
+ if [ $? -ne 0 ] ; then
+ warn "Could not set maximum file descriptor limit: $MAX_FD"
+ fi
+ else
+ warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
+ fi
+fi
+
+# For Darwin, add options to specify how the application appears in the dock
+if $darwin; then
+ GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
+fi
+
+# For Cygwin or MSYS, switch paths to Windows format before running java
+if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then
+ APP_HOME=`cygpath --path --mixed "$APP_HOME"`
+ CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
+
+ JAVACMD=`cygpath --unix "$JAVACMD"`
+
+ # We build the pattern for arguments to be converted via cygpath
+ ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
+ SEP=""
+ for dir in $ROOTDIRSRAW ; do
+ ROOTDIRS="$ROOTDIRS$SEP$dir"
+ SEP="|"
+ done
+ OURCYGPATTERN="(^($ROOTDIRS))"
+ # Add a user-defined pattern to the cygpath arguments
+ if [ "$GRADLE_CYGPATTERN" != "" ] ; then
+ OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
+ fi
+ # Now convert the arguments - kludge to limit ourselves to /bin/sh
+ i=0
+ for arg in "$@" ; do
+ CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
+ CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
+
+ if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
+ eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
+ else
+ eval `echo args$i`="\"$arg\""
+ fi
+ i=`expr $i + 1`
+ done
+ case $i in
+ 0) set -- ;;
+ 1) set -- "$args0" ;;
+ 2) set -- "$args0" "$args1" ;;
+ 3) set -- "$args0" "$args1" "$args2" ;;
+ 4) set -- "$args0" "$args1" "$args2" "$args3" ;;
+ 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
+ 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
+ 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
+ 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
+ 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
+ esac
+fi
+
+# Escape application args
+save () {
+ for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
+ echo " "
+}
+APP_ARGS=`save "$@"`
+
+# Collect all arguments for the java command, following the shell quoting and substitution rules
+eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
+
+exec "$JAVACMD" "$@"
diff --git a/Assignments/Mp2/gradlew.bat b/Assignments/Mp2/gradlew.bat
new file mode 100644
index 0000000..ac1b06f
--- /dev/null
+++ b/Assignments/Mp2/gradlew.bat
@@ -0,0 +1,89 @@
+@rem
+@rem Copyright 2015 the original author or authors.
+@rem
+@rem Licensed under the Apache License, Version 2.0 (the "License");
+@rem you may not use this file except in compliance with the License.
+@rem You may obtain a copy of the License at
+@rem
+@rem https://www.apache.org/licenses/LICENSE-2.0
+@rem
+@rem Unless required by applicable law or agreed to in writing, software
+@rem distributed under the License is distributed on an "AS IS" BASIS,
+@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+@rem See the License for the specific language governing permissions and
+@rem limitations under the License.
+@rem
+
+@if "%DEBUG%" == "" @echo off
+@rem ##########################################################################
+@rem
+@rem Gradle startup script for Windows
+@rem
+@rem ##########################################################################
+
+@rem Set local scope for the variables with windows NT shell
+if "%OS%"=="Windows_NT" setlocal
+
+set DIRNAME=%~dp0
+if "%DIRNAME%" == "" set DIRNAME=.
+set APP_BASE_NAME=%~n0
+set APP_HOME=%DIRNAME%
+
+@rem Resolve any "." and ".." in APP_HOME to make it shorter.
+for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
+
+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
+
+@rem Find java.exe
+if defined JAVA_HOME goto findJavaFromJavaHome
+
+set JAVA_EXE=java.exe
+%JAVA_EXE% -version >NUL 2>&1
+if "%ERRORLEVEL%" == "0" goto execute
+
+echo.
+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:findJavaFromJavaHome
+set JAVA_HOME=%JAVA_HOME:"=%
+set JAVA_EXE=%JAVA_HOME%/bin/java.exe
+
+if exist "%JAVA_EXE%" goto execute
+
+echo.
+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:execute
+@rem Setup the command line
+
+set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
+
+
+@rem Execute Gradle
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
+
+:end
+@rem End local scope for the variables with windows NT shell
+if "%ERRORLEVEL%"=="0" goto mainEnd
+
+:fail
+rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
+rem the _cmd.exe /c_ return code!
+if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
+exit /b 1
+
+:mainEnd
+if "%OS%"=="Windows_NT" endlocal
+
+:omega
diff --git a/Assignments/Mp2/settings.gradle.kts b/Assignments/Mp2/settings.gradle.kts
new file mode 100644
index 0000000..9e120ee
--- /dev/null
+++ b/Assignments/Mp2/settings.gradle.kts
@@ -0,0 +1,24 @@
+pluginManagement {
+ repositories {
+ google {
+ content {
+ includeGroupByRegex("com\\.android.*")
+ includeGroupByRegex("com\\.google.*")
+ includeGroupByRegex("androidx.*")
+ }
+ }
+ mavenCentral()
+ gradlePluginPortal()
+ }
+}
+dependencyResolutionManagement {
+ repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
+ repositories {
+ google()
+ mavenCentral()
+ }
+}
+
+rootProject.name = "Mp2"
+include(":app")
+
\ No newline at end of file
diff --git a/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot/.gitignore b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot/.gitignore
new file mode 100644
index 0000000..aa724b7
--- /dev/null
+++ b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot/.gitignore
@@ -0,0 +1,15 @@
+*.iml
+.gradle
+/local.properties
+/.idea/caches
+/.idea/libraries
+/.idea/modules.xml
+/.idea/workspace.xml
+/.idea/navEditor.xml
+/.idea/assetWizardSettings.xml
+.DS_Store
+/build
+/captures
+.externalNativeBuild
+.cxx
+local.properties
diff --git a/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot/app/.gitignore b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot/app/.gitignore
new file mode 100644
index 0000000..42afabf
--- /dev/null
+++ b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot/app/.gitignore
@@ -0,0 +1 @@
+/build
\ No newline at end of file
diff --git a/Assignments/FragmentToFragmentMap_CalebFontenot/app/build.gradle.kts b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot/app/build.gradle.kts
similarity index 100%
rename from Assignments/FragmentToFragmentMap_CalebFontenot/app/build.gradle.kts
rename to Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot/app/build.gradle.kts
diff --git a/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot/app/proguard-rules.pro b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot/app/proguard-rules.pro
new file mode 100644
index 0000000..481bb43
--- /dev/null
+++ b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot/app/proguard-rules.pro
@@ -0,0 +1,21 @@
+# Add project specific ProGuard rules here.
+# You can control the set of applied configuration files using the
+# proguardFiles setting in build.gradle.
+#
+# For more details, see
+# http://developer.android.com/guide/developing/tools/proguard.html
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+# public *;
+#}
+
+# Uncomment this to preserve the line number information for
+# debugging stack traces.
+#-keepattributes SourceFile,LineNumberTable
+
+# If you keep the line number information, uncomment this to
+# hide the original source file name.
+#-renamesourcefileattribute SourceFile
\ No newline at end of file
diff --git a/Assignments/FragmentToFragmentMap_CalebFontenot/app/src/androidTest/java/com/example/fragmenttofragmentmap/ExampleInstrumentedTest.java b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot/app/src/androidTest/java/com/example/fragmenttofragmentmap/ExampleInstrumentedTest.java
similarity index 100%
rename from Assignments/FragmentToFragmentMap_CalebFontenot/app/src/androidTest/java/com/example/fragmenttofragmentmap/ExampleInstrumentedTest.java
rename to Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot/app/src/androidTest/java/com/example/fragmenttofragmentmap/ExampleInstrumentedTest.java
diff --git a/Assignments/FragmentToFragmentMap_CalebFontenot/app/src/main/AndroidManifest.xml b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot/app/src/main/AndroidManifest.xml
similarity index 100%
rename from Assignments/FragmentToFragmentMap_CalebFontenot/app/src/main/AndroidManifest.xml
rename to Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot/app/src/main/AndroidManifest.xml
diff --git a/Assignments/FragmentToFragmentMap_CalebFontenot/app/src/main/java/com/example/fragmenttofragmentmap/A.java b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot/app/src/main/java/com/example/fragmenttofragmentmap/A.java
similarity index 100%
rename from Assignments/FragmentToFragmentMap_CalebFontenot/app/src/main/java/com/example/fragmenttofragmentmap/A.java
rename to Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot/app/src/main/java/com/example/fragmenttofragmentmap/A.java
diff --git a/Assignments/FragmentToFragmentMap_CalebFontenot/app/src/main/java/com/example/fragmenttofragmentmap/FragmentToFragmentMap.java b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot/app/src/main/java/com/example/fragmenttofragmentmap/FragmentToFragmentMap.java
similarity index 100%
rename from Assignments/FragmentToFragmentMap_CalebFontenot/app/src/main/java/com/example/fragmenttofragmentmap/FragmentToFragmentMap.java
rename to Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot/app/src/main/java/com/example/fragmenttofragmentmap/FragmentToFragmentMap.java
diff --git a/Assignments/FragmentToFragmentMap_CalebFontenot/app/src/main/java/com/example/fragmenttofragmentmap/GenericActivityThatCreatesFragments.java b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot/app/src/main/java/com/example/fragmenttofragmentmap/GenericActivityThatCreatesFragments.java
similarity index 100%
rename from Assignments/FragmentToFragmentMap_CalebFontenot/app/src/main/java/com/example/fragmenttofragmentmap/GenericActivityThatCreatesFragments.java
rename to Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot/app/src/main/java/com/example/fragmenttofragmentmap/GenericActivityThatCreatesFragments.java
diff --git a/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot/app/src/main/res/drawable-v24/ic_launcher_foreground.xml b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot/app/src/main/res/drawable-v24/ic_launcher_foreground.xml
new file mode 100644
index 0000000..2b068d1
--- /dev/null
+++ b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot/app/src/main/res/drawable-v24/ic_launcher_foreground.xml
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot/app/src/main/res/drawable/ic_launcher_background.xml b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot/app/src/main/res/drawable/ic_launcher_background.xml
new file mode 100644
index 0000000..07d5da9
--- /dev/null
+++ b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot/app/src/main/res/drawable/ic_launcher_background.xml
@@ -0,0 +1,170 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Assignments/FragmentToFragmentMap_CalebFontenot/app/src/main/res/layout/a.xml b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot/app/src/main/res/layout/a.xml
similarity index 100%
rename from Assignments/FragmentToFragmentMap_CalebFontenot/app/src/main/res/layout/a.xml
rename to Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot/app/src/main/res/layout/a.xml
diff --git a/Assignments/FragmentToFragmentMap_CalebFontenot/app/src/main/res/layout/activity_fragment_to_fragment_map.xml b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot/app/src/main/res/layout/activity_fragment_to_fragment_map.xml
similarity index 100%
rename from Assignments/FragmentToFragmentMap_CalebFontenot/app/src/main/res/layout/activity_fragment_to_fragment_map.xml
rename to Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot/app/src/main/res/layout/activity_fragment_to_fragment_map.xml
diff --git a/Assignments/FragmentToFragmentMap_CalebFontenot/app/src/main/res/layout/activity_generic_that_creates_fragment.xml b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot/app/src/main/res/layout/activity_generic_that_creates_fragment.xml
similarity index 100%
rename from Assignments/FragmentToFragmentMap_CalebFontenot/app/src/main/res/layout/activity_generic_that_creates_fragment.xml
rename to Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot/app/src/main/res/layout/activity_generic_that_creates_fragment.xml
diff --git a/Assignments/FragmentToFragmentMap_CalebFontenot/app/src/main/res/layout/f1.xml b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot/app/src/main/res/layout/f1.xml
similarity index 100%
rename from Assignments/FragmentToFragmentMap_CalebFontenot/app/src/main/res/layout/f1.xml
rename to Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot/app/src/main/res/layout/f1.xml
diff --git a/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
new file mode 100644
index 0000000..6f3b755
--- /dev/null
+++ b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
new file mode 100644
index 0000000..6f3b755
--- /dev/null
+++ b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot/app/src/main/res/mipmap-hdpi/ic_launcher.webp b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot/app/src/main/res/mipmap-hdpi/ic_launcher.webp
new file mode 100644
index 0000000..c209e78
Binary files /dev/null and b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot/app/src/main/res/mipmap-hdpi/ic_launcher.webp differ
diff --git a/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp
new file mode 100644
index 0000000..b2dfe3d
Binary files /dev/null and b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp differ
diff --git a/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot/app/src/main/res/mipmap-mdpi/ic_launcher.webp b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot/app/src/main/res/mipmap-mdpi/ic_launcher.webp
new file mode 100644
index 0000000..4f0f1d6
Binary files /dev/null and b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot/app/src/main/res/mipmap-mdpi/ic_launcher.webp differ
diff --git a/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp
new file mode 100644
index 0000000..62b611d
Binary files /dev/null and b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp differ
diff --git a/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot/app/src/main/res/mipmap-xhdpi/ic_launcher.webp b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot/app/src/main/res/mipmap-xhdpi/ic_launcher.webp
new file mode 100644
index 0000000..948a307
Binary files /dev/null and b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot/app/src/main/res/mipmap-xhdpi/ic_launcher.webp differ
diff --git a/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp
new file mode 100644
index 0000000..1b9a695
Binary files /dev/null and b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp differ
diff --git a/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp
new file mode 100644
index 0000000..28d4b77
Binary files /dev/null and b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp differ
diff --git a/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp
new file mode 100644
index 0000000..9287f50
Binary files /dev/null and b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp differ
diff --git a/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp
new file mode 100644
index 0000000..aa7d642
Binary files /dev/null and b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp differ
diff --git a/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp
new file mode 100644
index 0000000..9126ae3
Binary files /dev/null and b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp differ
diff --git a/Assignments/FragmentToFragmentMap_CalebFontenot/app/src/main/res/values-night/themes.xml b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot/app/src/main/res/values-night/themes.xml
similarity index 100%
rename from Assignments/FragmentToFragmentMap_CalebFontenot/app/src/main/res/values-night/themes.xml
rename to Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot/app/src/main/res/values-night/themes.xml
diff --git a/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot/app/src/main/res/values/colors.xml b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot/app/src/main/res/values/colors.xml
new file mode 100644
index 0000000..c8524cd
--- /dev/null
+++ b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot/app/src/main/res/values/colors.xml
@@ -0,0 +1,5 @@
+
+
+ #FF000000
+ #FFFFFFFF
+
\ No newline at end of file
diff --git a/Assignments/FragmentToFragmentMap_CalebFontenot/app/src/main/res/values/strings.xml b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot/app/src/main/res/values/strings.xml
similarity index 100%
rename from Assignments/FragmentToFragmentMap_CalebFontenot/app/src/main/res/values/strings.xml
rename to Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot/app/src/main/res/values/strings.xml
diff --git a/Assignments/FragmentToFragmentMap_CalebFontenot/app/src/main/res/values/themes.xml b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot/app/src/main/res/values/themes.xml
similarity index 100%
rename from Assignments/FragmentToFragmentMap_CalebFontenot/app/src/main/res/values/themes.xml
rename to Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot/app/src/main/res/values/themes.xml
diff --git a/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot/app/src/main/res/xml/backup_rules.xml b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot/app/src/main/res/xml/backup_rules.xml
new file mode 100644
index 0000000..fa0f996
--- /dev/null
+++ b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot/app/src/main/res/xml/backup_rules.xml
@@ -0,0 +1,13 @@
+
+
+
+
\ No newline at end of file
diff --git a/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot/app/src/main/res/xml/data_extraction_rules.xml b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot/app/src/main/res/xml/data_extraction_rules.xml
new file mode 100644
index 0000000..9ee9997
--- /dev/null
+++ b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot/app/src/main/res/xml/data_extraction_rules.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Assignments/FragmentToFragmentMap_CalebFontenot/app/src/test/java/com/example/fragmenttofragmentmap/ExampleUnitTest.java b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot/app/src/test/java/com/example/fragmenttofragmentmap/ExampleUnitTest.java
similarity index 100%
rename from Assignments/FragmentToFragmentMap_CalebFontenot/app/src/test/java/com/example/fragmenttofragmentmap/ExampleUnitTest.java
rename to Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot/app/src/test/java/com/example/fragmenttofragmentmap/ExampleUnitTest.java
diff --git a/Assignments/FragmentToFragmentMap_CalebFontenot/build.gradle.kts b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot/build.gradle.kts
similarity index 100%
rename from Assignments/FragmentToFragmentMap_CalebFontenot/build.gradle.kts
rename to Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot/build.gradle.kts
diff --git a/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot/gradle.properties b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot/gradle.properties
new file mode 100644
index 0000000..4387edc
--- /dev/null
+++ b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot/gradle.properties
@@ -0,0 +1,21 @@
+# Project-wide Gradle settings.
+# IDE (e.g. Android Studio) users:
+# Gradle settings configured through the IDE *will override*
+# any settings specified in this file.
+# For more details on how to configure your build environment visit
+# http://www.gradle.org/docs/current/userguide/build_environment.html
+# Specifies the JVM arguments used for the daemon process.
+# The setting is particularly useful for tweaking memory settings.
+org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8
+# When configured, Gradle will run in incubating parallel mode.
+# This option should only be used with decoupled projects. For more details, visit
+# https://developer.android.com/r/tools/gradle-multi-project-decoupled-projects
+# org.gradle.parallel=true
+# AndroidX package structure to make it clearer which packages are bundled with the
+# Android operating system, and which are packaged with your app's APK
+# https://developer.android.com/topic/libraries/support-library/androidx-rn
+android.useAndroidX=true
+# Enables namespacing of each library's R class so that its R class includes only the
+# resources declared in the library itself and none from the library's dependencies,
+# thereby reducing the size of the R class for that library
+android.nonTransitiveRClass=true
\ No newline at end of file
diff --git a/Assignments/FragmentToFragmentMap_CalebFontenot/gradle/libs.versions.toml.old b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot/gradle/libs.versions.toml.old
similarity index 100%
rename from Assignments/FragmentToFragmentMap_CalebFontenot/gradle/libs.versions.toml.old
rename to Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot/gradle/libs.versions.toml.old
diff --git a/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot/gradle/wrapper/gradle-wrapper.jar b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot/gradle/wrapper/gradle-wrapper.jar
new file mode 100644
index 0000000..e708b1c
Binary files /dev/null and b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/Assignments/FragmentToFragmentMap_CalebFontenot/gradle/wrapper/gradle-wrapper.properties b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot/gradle/wrapper/gradle-wrapper.properties
similarity index 100%
rename from Assignments/FragmentToFragmentMap_CalebFontenot/gradle/wrapper/gradle-wrapper.properties
rename to Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot/gradle/wrapper/gradle-wrapper.properties
diff --git a/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot/gradlew b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot/gradlew
new file mode 100644
index 0000000..4f906e0
--- /dev/null
+++ b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot/gradlew
@@ -0,0 +1,185 @@
+#!/usr/bin/env sh
+
+#
+# Copyright 2015 the original author or authors.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+##############################################################################
+##
+## Gradle start up script for UN*X
+##
+##############################################################################
+
+# Attempt to set APP_HOME
+# Resolve links: $0 may be a link
+PRG="$0"
+# Need this for relative symlinks.
+while [ -h "$PRG" ] ; do
+ ls=`ls -ld "$PRG"`
+ link=`expr "$ls" : '.*-> \(.*\)$'`
+ if expr "$link" : '/.*' > /dev/null; then
+ PRG="$link"
+ else
+ PRG=`dirname "$PRG"`"/$link"
+ fi
+done
+SAVED="`pwd`"
+cd "`dirname \"$PRG\"`/" >/dev/null
+APP_HOME="`pwd -P`"
+cd "$SAVED" >/dev/null
+
+APP_NAME="Gradle"
+APP_BASE_NAME=`basename "$0"`
+
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
+
+# Use the maximum available, or set MAX_FD != -1 to use that value.
+MAX_FD="maximum"
+
+warn () {
+ echo "$*"
+}
+
+die () {
+ echo
+ echo "$*"
+ echo
+ exit 1
+}
+
+# OS specific support (must be 'true' or 'false').
+cygwin=false
+msys=false
+darwin=false
+nonstop=false
+case "`uname`" in
+ CYGWIN* )
+ cygwin=true
+ ;;
+ Darwin* )
+ darwin=true
+ ;;
+ MINGW* )
+ msys=true
+ ;;
+ NONSTOP* )
+ nonstop=true
+ ;;
+esac
+
+CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
+
+
+# Determine the Java command to use to start the JVM.
+if [ -n "$JAVA_HOME" ] ; then
+ if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+ # IBM's JDK on AIX uses strange locations for the executables
+ JAVACMD="$JAVA_HOME/jre/sh/java"
+ else
+ JAVACMD="$JAVA_HOME/bin/java"
+ fi
+ if [ ! -x "$JAVACMD" ] ; then
+ die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+ fi
+else
+ JAVACMD="java"
+ which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+fi
+
+# Increase the maximum file descriptors if we can.
+if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
+ MAX_FD_LIMIT=`ulimit -H -n`
+ if [ $? -eq 0 ] ; then
+ if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
+ MAX_FD="$MAX_FD_LIMIT"
+ fi
+ ulimit -n $MAX_FD
+ if [ $? -ne 0 ] ; then
+ warn "Could not set maximum file descriptor limit: $MAX_FD"
+ fi
+ else
+ warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
+ fi
+fi
+
+# For Darwin, add options to specify how the application appears in the dock
+if $darwin; then
+ GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
+fi
+
+# For Cygwin or MSYS, switch paths to Windows format before running java
+if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then
+ APP_HOME=`cygpath --path --mixed "$APP_HOME"`
+ CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
+
+ JAVACMD=`cygpath --unix "$JAVACMD"`
+
+ # We build the pattern for arguments to be converted via cygpath
+ ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
+ SEP=""
+ for dir in $ROOTDIRSRAW ; do
+ ROOTDIRS="$ROOTDIRS$SEP$dir"
+ SEP="|"
+ done
+ OURCYGPATTERN="(^($ROOTDIRS))"
+ # Add a user-defined pattern to the cygpath arguments
+ if [ "$GRADLE_CYGPATTERN" != "" ] ; then
+ OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
+ fi
+ # Now convert the arguments - kludge to limit ourselves to /bin/sh
+ i=0
+ for arg in "$@" ; do
+ CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
+ CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
+
+ if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
+ eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
+ else
+ eval `echo args$i`="\"$arg\""
+ fi
+ i=`expr $i + 1`
+ done
+ case $i in
+ 0) set -- ;;
+ 1) set -- "$args0" ;;
+ 2) set -- "$args0" "$args1" ;;
+ 3) set -- "$args0" "$args1" "$args2" ;;
+ 4) set -- "$args0" "$args1" "$args2" "$args3" ;;
+ 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
+ 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
+ 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
+ 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
+ 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
+ esac
+fi
+
+# Escape application args
+save () {
+ for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
+ echo " "
+}
+APP_ARGS=`save "$@"`
+
+# Collect all arguments for the java command, following the shell quoting and substitution rules
+eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
+
+exec "$JAVACMD" "$@"
diff --git a/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot/gradlew.bat b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot/gradlew.bat
new file mode 100644
index 0000000..ac1b06f
--- /dev/null
+++ b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot/gradlew.bat
@@ -0,0 +1,89 @@
+@rem
+@rem Copyright 2015 the original author or authors.
+@rem
+@rem Licensed under the Apache License, Version 2.0 (the "License");
+@rem you may not use this file except in compliance with the License.
+@rem You may obtain a copy of the License at
+@rem
+@rem https://www.apache.org/licenses/LICENSE-2.0
+@rem
+@rem Unless required by applicable law or agreed to in writing, software
+@rem distributed under the License is distributed on an "AS IS" BASIS,
+@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+@rem See the License for the specific language governing permissions and
+@rem limitations under the License.
+@rem
+
+@if "%DEBUG%" == "" @echo off
+@rem ##########################################################################
+@rem
+@rem Gradle startup script for Windows
+@rem
+@rem ##########################################################################
+
+@rem Set local scope for the variables with windows NT shell
+if "%OS%"=="Windows_NT" setlocal
+
+set DIRNAME=%~dp0
+if "%DIRNAME%" == "" set DIRNAME=.
+set APP_BASE_NAME=%~n0
+set APP_HOME=%DIRNAME%
+
+@rem Resolve any "." and ".." in APP_HOME to make it shorter.
+for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
+
+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
+
+@rem Find java.exe
+if defined JAVA_HOME goto findJavaFromJavaHome
+
+set JAVA_EXE=java.exe
+%JAVA_EXE% -version >NUL 2>&1
+if "%ERRORLEVEL%" == "0" goto execute
+
+echo.
+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:findJavaFromJavaHome
+set JAVA_HOME=%JAVA_HOME:"=%
+set JAVA_EXE=%JAVA_HOME%/bin/java.exe
+
+if exist "%JAVA_EXE%" goto execute
+
+echo.
+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:execute
+@rem Setup the command line
+
+set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
+
+
+@rem Execute Gradle
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
+
+:end
+@rem End local scope for the variables with windows NT shell
+if "%ERRORLEVEL%"=="0" goto mainEnd
+
+:fail
+rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
+rem the _cmd.exe /c_ return code!
+if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
+exit /b 1
+
+:mainEnd
+if "%OS%"=="Windows_NT" endlocal
+
+:omega
diff --git a/Assignments/FragmentToFragmentMap_CalebFontenot/settings.gradle.kts b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot/settings.gradle.kts
similarity index 100%
rename from Assignments/FragmentToFragmentMap_CalebFontenot/settings.gradle.kts
rename to Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot/settings.gradle.kts
diff --git a/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot2/.gitignore b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot2/.gitignore
new file mode 100644
index 0000000..aa724b7
--- /dev/null
+++ b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot2/.gitignore
@@ -0,0 +1,15 @@
+*.iml
+.gradle
+/local.properties
+/.idea/caches
+/.idea/libraries
+/.idea/modules.xml
+/.idea/workspace.xml
+/.idea/navEditor.xml
+/.idea/assetWizardSettings.xml
+.DS_Store
+/build
+/captures
+.externalNativeBuild
+.cxx
+local.properties
diff --git a/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot2/.idea/.gitignore b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot2/.idea/.gitignore
new file mode 100644
index 0000000..26d3352
--- /dev/null
+++ b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot2/.idea/.gitignore
@@ -0,0 +1,3 @@
+# Default ignored files
+/shelf/
+/workspace.xml
diff --git a/Assignments/FragmentToFragmentMap_CalebFontenot2/.idea/codeStyles b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot2/.idea/codeStyles
similarity index 100%
rename from Assignments/FragmentToFragmentMap_CalebFontenot2/.idea/codeStyles
rename to Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot2/.idea/codeStyles
diff --git a/Assignments/fragmentToFragmnetMap/.idea/discord.xml b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot2/.idea/discord.xml
similarity index 100%
rename from Assignments/fragmentToFragmnetMap/.idea/discord.xml
rename to Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot2/.idea/discord.xml
diff --git a/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot2/app/.gitignore b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot2/app/.gitignore
new file mode 100644
index 0000000..42afabf
--- /dev/null
+++ b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot2/app/.gitignore
@@ -0,0 +1 @@
+/build
\ No newline at end of file
diff --git a/Assignments/FragmentToFragmentMap_CalebFontenot2/app/build.gradle.kts b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot2/app/build.gradle.kts
similarity index 100%
rename from Assignments/FragmentToFragmentMap_CalebFontenot2/app/build.gradle.kts
rename to Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot2/app/build.gradle.kts
diff --git a/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot2/app/proguard-rules.pro b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot2/app/proguard-rules.pro
new file mode 100644
index 0000000..481bb43
--- /dev/null
+++ b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot2/app/proguard-rules.pro
@@ -0,0 +1,21 @@
+# Add project specific ProGuard rules here.
+# You can control the set of applied configuration files using the
+# proguardFiles setting in build.gradle.
+#
+# For more details, see
+# http://developer.android.com/guide/developing/tools/proguard.html
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+# public *;
+#}
+
+# Uncomment this to preserve the line number information for
+# debugging stack traces.
+#-keepattributes SourceFile,LineNumberTable
+
+# If you keep the line number information, uncomment this to
+# hide the original source file name.
+#-renamesourcefileattribute SourceFile
\ No newline at end of file
diff --git a/Assignments/FragmentToFragmentMap_CalebFontenot2/app/src/androidTest/java/com/calebfontenot/fragmenttofragmentmap_calebfontenot2/ExampleInstrumentedTest.java b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot2/app/src/androidTest/java/com/calebfontenot/fragmenttofragmentmap_calebfontenot2/ExampleInstrumentedTest.java
similarity index 100%
rename from Assignments/FragmentToFragmentMap_CalebFontenot2/app/src/androidTest/java/com/calebfontenot/fragmenttofragmentmap_calebfontenot2/ExampleInstrumentedTest.java
rename to Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot2/app/src/androidTest/java/com/calebfontenot/fragmenttofragmentmap_calebfontenot2/ExampleInstrumentedTest.java
diff --git a/Assignments/FragmentToFragmentMap_CalebFontenot2/app/src/main/AndroidManifest.xml b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot2/app/src/main/AndroidManifest.xml
similarity index 100%
rename from Assignments/FragmentToFragmentMap_CalebFontenot2/app/src/main/AndroidManifest.xml
rename to Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot2/app/src/main/AndroidManifest.xml
diff --git a/Assignments/FragmentToFragmentMap_CalebFontenot2/app/src/main/java/com/calebfontenot/fragmenttofragmentmap_calebfontenot2/A.java b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot2/app/src/main/java/com/calebfontenot/fragmenttofragmentmap_calebfontenot2/A.java
similarity index 100%
rename from Assignments/FragmentToFragmentMap_CalebFontenot2/app/src/main/java/com/calebfontenot/fragmenttofragmentmap_calebfontenot2/A.java
rename to Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot2/app/src/main/java/com/calebfontenot/fragmenttofragmentmap_calebfontenot2/A.java
diff --git a/Assignments/FragmentToFragmentMap_CalebFontenot2/app/src/main/java/com/calebfontenot/fragmenttofragmentmap_calebfontenot2/F1.java b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot2/app/src/main/java/com/calebfontenot/fragmenttofragmentmap_calebfontenot2/F1.java
similarity index 100%
rename from Assignments/FragmentToFragmentMap_CalebFontenot2/app/src/main/java/com/calebfontenot/fragmenttofragmentmap_calebfontenot2/F1.java
rename to Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot2/app/src/main/java/com/calebfontenot/fragmenttofragmentmap_calebfontenot2/F1.java
diff --git a/Assignments/FragmentToFragmentMap_CalebFontenot2/app/src/main/java/com/calebfontenot/fragmenttofragmentmap_calebfontenot2/FragmentToFragmentMap.java b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot2/app/src/main/java/com/calebfontenot/fragmenttofragmentmap_calebfontenot2/FragmentToFragmentMap.java
similarity index 100%
rename from Assignments/FragmentToFragmentMap_CalebFontenot2/app/src/main/java/com/calebfontenot/fragmenttofragmentmap_calebfontenot2/FragmentToFragmentMap.java
rename to Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot2/app/src/main/java/com/calebfontenot/fragmenttofragmentmap_calebfontenot2/FragmentToFragmentMap.java
diff --git a/Assignments/FragmentToFragmentMap_CalebFontenot2/app/src/main/java/com/calebfontenot/fragmenttofragmentmap_calebfontenot2/GenericActivityThatCreatesFragments.java b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot2/app/src/main/java/com/calebfontenot/fragmenttofragmentmap_calebfontenot2/GenericActivityThatCreatesFragments.java
similarity index 100%
rename from Assignments/FragmentToFragmentMap_CalebFontenot2/app/src/main/java/com/calebfontenot/fragmenttofragmentmap_calebfontenot2/GenericActivityThatCreatesFragments.java
rename to Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot2/app/src/main/java/com/calebfontenot/fragmenttofragmentmap_calebfontenot2/GenericActivityThatCreatesFragments.java
diff --git a/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/drawable-v24/ic_launcher_foreground.xml b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/drawable-v24/ic_launcher_foreground.xml
new file mode 100644
index 0000000..2b068d1
--- /dev/null
+++ b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/drawable-v24/ic_launcher_foreground.xml
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/drawable/ic_launcher_background.xml b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/drawable/ic_launcher_background.xml
new file mode 100644
index 0000000..07d5da9
--- /dev/null
+++ b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/drawable/ic_launcher_background.xml
@@ -0,0 +1,170 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/drawable/ic_launcher_foreground.xml b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/drawable/ic_launcher_foreground.xml
new file mode 100644
index 0000000..2b068d1
--- /dev/null
+++ b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/drawable/ic_launcher_foreground.xml
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Assignments/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/layout/a.xml b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/layout/a.xml
similarity index 100%
rename from Assignments/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/layout/a.xml
rename to Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/layout/a.xml
diff --git a/Assignments/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/layout/activity_fragment_to_fragment_map.xml b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/layout/activity_fragment_to_fragment_map.xml
similarity index 100%
rename from Assignments/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/layout/activity_fragment_to_fragment_map.xml
rename to Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/layout/activity_fragment_to_fragment_map.xml
diff --git a/Assignments/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/layout/activity_generic_that_creates_fragment.xml b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/layout/activity_generic_that_creates_fragment.xml
similarity index 100%
rename from Assignments/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/layout/activity_generic_that_creates_fragment.xml
rename to Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/layout/activity_generic_that_creates_fragment.xml
diff --git a/Assignments/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/layout/activity_main.xml b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/layout/activity_main.xml
similarity index 100%
rename from Assignments/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/layout/activity_main.xml
rename to Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/layout/activity_main.xml
diff --git a/Assignments/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/layout/f1.xml b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/layout/f1.xml
similarity index 100%
rename from Assignments/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/layout/f1.xml
rename to Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/layout/f1.xml
diff --git a/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
new file mode 100644
index 0000000..6f3b755
--- /dev/null
+++ b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
new file mode 100644
index 0000000..6f3b755
--- /dev/null
+++ b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/mipmap-hdpi/ic_launcher.webp b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/mipmap-hdpi/ic_launcher.webp
new file mode 100644
index 0000000..c209e78
Binary files /dev/null and b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/mipmap-hdpi/ic_launcher.webp differ
diff --git a/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp
new file mode 100644
index 0000000..b2dfe3d
Binary files /dev/null and b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp differ
diff --git a/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/mipmap-mdpi/ic_launcher.webp b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/mipmap-mdpi/ic_launcher.webp
new file mode 100644
index 0000000..4f0f1d6
Binary files /dev/null and b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/mipmap-mdpi/ic_launcher.webp differ
diff --git a/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp
new file mode 100644
index 0000000..62b611d
Binary files /dev/null and b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp differ
diff --git a/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/mipmap-xhdpi/ic_launcher.webp b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/mipmap-xhdpi/ic_launcher.webp
new file mode 100644
index 0000000..948a307
Binary files /dev/null and b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/mipmap-xhdpi/ic_launcher.webp differ
diff --git a/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp
new file mode 100644
index 0000000..1b9a695
Binary files /dev/null and b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp differ
diff --git a/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp
new file mode 100644
index 0000000..28d4b77
Binary files /dev/null and b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp differ
diff --git a/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp
new file mode 100644
index 0000000..9287f50
Binary files /dev/null and b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp differ
diff --git a/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp
new file mode 100644
index 0000000..aa7d642
Binary files /dev/null and b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp differ
diff --git a/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp
new file mode 100644
index 0000000..9126ae3
Binary files /dev/null and b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp differ
diff --git a/Assignments/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/values-night/themes.xml b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/values-night/themes.xml
similarity index 100%
rename from Assignments/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/values-night/themes.xml
rename to Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/values-night/themes.xml
diff --git a/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/values/colors.xml b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/values/colors.xml
new file mode 100644
index 0000000..c8524cd
--- /dev/null
+++ b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/values/colors.xml
@@ -0,0 +1,5 @@
+
+
+ #FF000000
+ #FFFFFFFF
+
\ No newline at end of file
diff --git a/Assignments/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/values/strings.xml b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/values/strings.xml
similarity index 100%
rename from Assignments/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/values/strings.xml
rename to Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/values/strings.xml
diff --git a/Assignments/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/values/themes.xml b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/values/themes.xml
similarity index 100%
rename from Assignments/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/values/themes.xml
rename to Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/values/themes.xml
diff --git a/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/xml/backup_rules.xml b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/xml/backup_rules.xml
new file mode 100644
index 0000000..fa0f996
--- /dev/null
+++ b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/xml/backup_rules.xml
@@ -0,0 +1,13 @@
+
+
+
+
\ No newline at end of file
diff --git a/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/xml/data_extraction_rules.xml b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/xml/data_extraction_rules.xml
new file mode 100644
index 0000000..9ee9997
--- /dev/null
+++ b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/xml/data_extraction_rules.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Assignments/FragmentToFragmentMap_CalebFontenot2/app/src/test/java/com/calebfontenot/fragmenttofragmentmap_calebfontenot2/ExampleUnitTest.java b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot2/app/src/test/java/com/calebfontenot/fragmenttofragmentmap_calebfontenot2/ExampleUnitTest.java
similarity index 100%
rename from Assignments/FragmentToFragmentMap_CalebFontenot2/app/src/test/java/com/calebfontenot/fragmenttofragmentmap_calebfontenot2/ExampleUnitTest.java
rename to Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot2/app/src/test/java/com/calebfontenot/fragmenttofragmentmap_calebfontenot2/ExampleUnitTest.java
diff --git a/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot2/build.gradle.kts b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot2/build.gradle.kts
new file mode 100644
index 0000000..196e647
--- /dev/null
+++ b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot2/build.gradle.kts
@@ -0,0 +1,4 @@
+// Top-level build file where you can add configuration options common to all sub-projects/modules.
+plugins {
+ id("com.android.application") version "8.2.2" apply false
+}
\ No newline at end of file
diff --git a/Assignments/fragmentToFragmnetMap/gradle.properties b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot2/gradle.properties
similarity index 100%
rename from Assignments/fragmentToFragmnetMap/gradle.properties
rename to Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot2/gradle.properties
diff --git a/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot2/gradle/wrapper/gradle-wrapper.jar b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot2/gradle/wrapper/gradle-wrapper.jar
new file mode 100644
index 0000000..e708b1c
Binary files /dev/null and b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot2/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/Assignments/FragmentToFragmentMap_CalebFontenot2/gradle/wrapper/gradle-wrapper.properties b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot2/gradle/wrapper/gradle-wrapper.properties
similarity index 100%
rename from Assignments/FragmentToFragmentMap_CalebFontenot2/gradle/wrapper/gradle-wrapper.properties
rename to Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot2/gradle/wrapper/gradle-wrapper.properties
diff --git a/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot2/gradlew b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot2/gradlew
new file mode 100755
index 0000000..4f906e0
--- /dev/null
+++ b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot2/gradlew
@@ -0,0 +1,185 @@
+#!/usr/bin/env sh
+
+#
+# Copyright 2015 the original author or authors.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+##############################################################################
+##
+## Gradle start up script for UN*X
+##
+##############################################################################
+
+# Attempt to set APP_HOME
+# Resolve links: $0 may be a link
+PRG="$0"
+# Need this for relative symlinks.
+while [ -h "$PRG" ] ; do
+ ls=`ls -ld "$PRG"`
+ link=`expr "$ls" : '.*-> \(.*\)$'`
+ if expr "$link" : '/.*' > /dev/null; then
+ PRG="$link"
+ else
+ PRG=`dirname "$PRG"`"/$link"
+ fi
+done
+SAVED="`pwd`"
+cd "`dirname \"$PRG\"`/" >/dev/null
+APP_HOME="`pwd -P`"
+cd "$SAVED" >/dev/null
+
+APP_NAME="Gradle"
+APP_BASE_NAME=`basename "$0"`
+
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
+
+# Use the maximum available, or set MAX_FD != -1 to use that value.
+MAX_FD="maximum"
+
+warn () {
+ echo "$*"
+}
+
+die () {
+ echo
+ echo "$*"
+ echo
+ exit 1
+}
+
+# OS specific support (must be 'true' or 'false').
+cygwin=false
+msys=false
+darwin=false
+nonstop=false
+case "`uname`" in
+ CYGWIN* )
+ cygwin=true
+ ;;
+ Darwin* )
+ darwin=true
+ ;;
+ MINGW* )
+ msys=true
+ ;;
+ NONSTOP* )
+ nonstop=true
+ ;;
+esac
+
+CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
+
+
+# Determine the Java command to use to start the JVM.
+if [ -n "$JAVA_HOME" ] ; then
+ if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+ # IBM's JDK on AIX uses strange locations for the executables
+ JAVACMD="$JAVA_HOME/jre/sh/java"
+ else
+ JAVACMD="$JAVA_HOME/bin/java"
+ fi
+ if [ ! -x "$JAVACMD" ] ; then
+ die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+ fi
+else
+ JAVACMD="java"
+ which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+fi
+
+# Increase the maximum file descriptors if we can.
+if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
+ MAX_FD_LIMIT=`ulimit -H -n`
+ if [ $? -eq 0 ] ; then
+ if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
+ MAX_FD="$MAX_FD_LIMIT"
+ fi
+ ulimit -n $MAX_FD
+ if [ $? -ne 0 ] ; then
+ warn "Could not set maximum file descriptor limit: $MAX_FD"
+ fi
+ else
+ warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
+ fi
+fi
+
+# For Darwin, add options to specify how the application appears in the dock
+if $darwin; then
+ GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
+fi
+
+# For Cygwin or MSYS, switch paths to Windows format before running java
+if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then
+ APP_HOME=`cygpath --path --mixed "$APP_HOME"`
+ CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
+
+ JAVACMD=`cygpath --unix "$JAVACMD"`
+
+ # We build the pattern for arguments to be converted via cygpath
+ ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
+ SEP=""
+ for dir in $ROOTDIRSRAW ; do
+ ROOTDIRS="$ROOTDIRS$SEP$dir"
+ SEP="|"
+ done
+ OURCYGPATTERN="(^($ROOTDIRS))"
+ # Add a user-defined pattern to the cygpath arguments
+ if [ "$GRADLE_CYGPATTERN" != "" ] ; then
+ OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
+ fi
+ # Now convert the arguments - kludge to limit ourselves to /bin/sh
+ i=0
+ for arg in "$@" ; do
+ CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
+ CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
+
+ if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
+ eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
+ else
+ eval `echo args$i`="\"$arg\""
+ fi
+ i=`expr $i + 1`
+ done
+ case $i in
+ 0) set -- ;;
+ 1) set -- "$args0" ;;
+ 2) set -- "$args0" "$args1" ;;
+ 3) set -- "$args0" "$args1" "$args2" ;;
+ 4) set -- "$args0" "$args1" "$args2" "$args3" ;;
+ 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
+ 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
+ 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
+ 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
+ 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
+ esac
+fi
+
+# Escape application args
+save () {
+ for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
+ echo " "
+}
+APP_ARGS=`save "$@"`
+
+# Collect all arguments for the java command, following the shell quoting and substitution rules
+eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
+
+exec "$JAVACMD" "$@"
diff --git a/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot2/gradlew.bat b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot2/gradlew.bat
new file mode 100644
index 0000000..ac1b06f
--- /dev/null
+++ b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot2/gradlew.bat
@@ -0,0 +1,89 @@
+@rem
+@rem Copyright 2015 the original author or authors.
+@rem
+@rem Licensed under the Apache License, Version 2.0 (the "License");
+@rem you may not use this file except in compliance with the License.
+@rem You may obtain a copy of the License at
+@rem
+@rem https://www.apache.org/licenses/LICENSE-2.0
+@rem
+@rem Unless required by applicable law or agreed to in writing, software
+@rem distributed under the License is distributed on an "AS IS" BASIS,
+@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+@rem See the License for the specific language governing permissions and
+@rem limitations under the License.
+@rem
+
+@if "%DEBUG%" == "" @echo off
+@rem ##########################################################################
+@rem
+@rem Gradle startup script for Windows
+@rem
+@rem ##########################################################################
+
+@rem Set local scope for the variables with windows NT shell
+if "%OS%"=="Windows_NT" setlocal
+
+set DIRNAME=%~dp0
+if "%DIRNAME%" == "" set DIRNAME=.
+set APP_BASE_NAME=%~n0
+set APP_HOME=%DIRNAME%
+
+@rem Resolve any "." and ".." in APP_HOME to make it shorter.
+for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
+
+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
+
+@rem Find java.exe
+if defined JAVA_HOME goto findJavaFromJavaHome
+
+set JAVA_EXE=java.exe
+%JAVA_EXE% -version >NUL 2>&1
+if "%ERRORLEVEL%" == "0" goto execute
+
+echo.
+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:findJavaFromJavaHome
+set JAVA_HOME=%JAVA_HOME:"=%
+set JAVA_EXE=%JAVA_HOME%/bin/java.exe
+
+if exist "%JAVA_EXE%" goto execute
+
+echo.
+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:execute
+@rem Setup the command line
+
+set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
+
+
+@rem Execute Gradle
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
+
+:end
+@rem End local scope for the variables with windows NT shell
+if "%ERRORLEVEL%"=="0" goto mainEnd
+
+:fail
+rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
+rem the _cmd.exe /c_ return code!
+if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
+exit /b 1
+
+:mainEnd
+if "%OS%"=="Windows_NT" endlocal
+
+:omega
diff --git a/Assignments/FragmentToFragmentMap_CalebFontenot2/settings.gradle.kts b/Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot2/settings.gradle.kts
similarity index 100%
rename from Assignments/FragmentToFragmentMap_CalebFontenot2/settings.gradle.kts
rename to Assignments/Old FragmentToFragment Projects/FragmentToFragmentMap_CalebFontenot2/settings.gradle.kts
diff --git a/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/.gitignore b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/.gitignore
new file mode 100644
index 0000000..aa724b7
--- /dev/null
+++ b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/.gitignore
@@ -0,0 +1,15 @@
+*.iml
+.gradle
+/local.properties
+/.idea/caches
+/.idea/libraries
+/.idea/modules.xml
+/.idea/workspace.xml
+/.idea/navEditor.xml
+/.idea/assetWizardSettings.xml
+.DS_Store
+/build
+/captures
+.externalNativeBuild
+.cxx
+local.properties
diff --git a/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/.idea/.gitignore b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/.idea/.gitignore
new file mode 100644
index 0000000..26d3352
--- /dev/null
+++ b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/.idea/.gitignore
@@ -0,0 +1,3 @@
+# Default ignored files
+/shelf/
+/workspace.xml
diff --git a/Assignments/fragmentToFragmnetMap/.idea/.name b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/.idea/.name
similarity index 100%
rename from Assignments/fragmentToFragmnetMap/.idea/.name
rename to Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/.idea/.name
diff --git a/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/.idea/appInsightsSettings.xml b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/.idea/appInsightsSettings.xml
new file mode 100644
index 0000000..371f2e2
--- /dev/null
+++ b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/.idea/appInsightsSettings.xml
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/.idea/compiler.xml b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/.idea/compiler.xml
new file mode 100644
index 0000000..b589d56
--- /dev/null
+++ b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/.idea/compiler.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/.idea/deploymentTargetDropDown.xml b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/.idea/deploymentTargetDropDown.xml
new file mode 100644
index 0000000..0c0c338
--- /dev/null
+++ b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/.idea/deploymentTargetDropDown.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/.idea/discord.xml b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/.idea/discord.xml
new file mode 100644
index 0000000..30bab2a
--- /dev/null
+++ b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/.idea/discord.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/.idea/gradle.xml b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/.idea/gradle.xml
new file mode 100644
index 0000000..0897082
--- /dev/null
+++ b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/.idea/gradle.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/.idea/migrations.xml b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/.idea/migrations.xml
new file mode 100644
index 0000000..f8051a6
--- /dev/null
+++ b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/.idea/migrations.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/.idea/misc.xml b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/.idea/misc.xml
new file mode 100644
index 0000000..8978d23
--- /dev/null
+++ b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/.idea/misc.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/.idea/vcs.xml b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/.idea/vcs.xml
new file mode 100644
index 0000000..b2bdec2
--- /dev/null
+++ b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/app/.gitignore b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/app/.gitignore
new file mode 100644
index 0000000..42afabf
--- /dev/null
+++ b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/app/.gitignore
@@ -0,0 +1 @@
+/build
\ No newline at end of file
diff --git a/Assignments/fragmentToFragmnetMap/app/build.gradle b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/app/build.gradle
similarity index 100%
rename from Assignments/fragmentToFragmnetMap/app/build.gradle
rename to Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/app/build.gradle
diff --git a/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/app/proguard-rules.pro b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/app/proguard-rules.pro
new file mode 100644
index 0000000..481bb43
--- /dev/null
+++ b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/app/proguard-rules.pro
@@ -0,0 +1,21 @@
+# Add project specific ProGuard rules here.
+# You can control the set of applied configuration files using the
+# proguardFiles setting in build.gradle.
+#
+# For more details, see
+# http://developer.android.com/guide/developing/tools/proguard.html
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+# public *;
+#}
+
+# Uncomment this to preserve the line number information for
+# debugging stack traces.
+#-keepattributes SourceFile,LineNumberTable
+
+# If you keep the line number information, uncomment this to
+# hide the original source file name.
+#-renamesourcefileattribute SourceFile
\ No newline at end of file
diff --git a/Assignments/fragmentToFragmnetMap/app/src/androidTest/java/com/example/fragmenttofragmentmap/ExampleInstrumentedTest.java b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/app/src/androidTest/java/com/example/fragmenttofragmentmap/ExampleInstrumentedTest.java
similarity index 100%
rename from Assignments/fragmentToFragmnetMap/app/src/androidTest/java/com/example/fragmenttofragmentmap/ExampleInstrumentedTest.java
rename to Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/app/src/androidTest/java/com/example/fragmenttofragmentmap/ExampleInstrumentedTest.java
diff --git a/Assignments/fragmentToFragmnetMap/app/src/main/AndroidManifest.xml b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/app/src/main/AndroidManifest.xml
similarity index 100%
rename from Assignments/fragmentToFragmnetMap/app/src/main/AndroidManifest.xml
rename to Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/app/src/main/AndroidManifest.xml
diff --git a/Assignments/fragmentToFragmnetMap/app/src/main/java/com/example/fragmenttofragmentmap/A.java b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/app/src/main/java/com/example/fragmenttofragmentmap/A.java
similarity index 100%
rename from Assignments/fragmentToFragmnetMap/app/src/main/java/com/example/fragmenttofragmentmap/A.java
rename to Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/app/src/main/java/com/example/fragmenttofragmentmap/A.java
diff --git a/Assignments/fragmentToFragmnetMap/app/src/main/java/com/example/fragmenttofragmentmap/B.java b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/app/src/main/java/com/example/fragmenttofragmentmap/B.java
similarity index 100%
rename from Assignments/fragmentToFragmnetMap/app/src/main/java/com/example/fragmenttofragmentmap/B.java
rename to Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/app/src/main/java/com/example/fragmenttofragmentmap/B.java
diff --git a/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/app/src/main/java/com/example/fragmenttofragmentmap/Contact.java b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/app/src/main/java/com/example/fragmenttofragmentmap/Contact.java
new file mode 100644
index 0000000..2a4d020
--- /dev/null
+++ b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/app/src/main/java/com/example/fragmenttofragmentmap/Contact.java
@@ -0,0 +1,37 @@
+package com.example.fragmenttofragmentmap;
+
+import java.util.UUID;
+
+public class Contact {
+ private UUID id;
+
+ public UUID getId() {
+ return id;
+ }
+
+ private String name;
+
+ public Contact(String name, String phone) {
+ this.id = UUID.randomUUID();
+ this.name = name;
+ this.phone = phone;
+ }
+
+ private String phone;
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getPhone() {
+ return phone;
+ }
+
+ public void setPhone(String phone) {
+ this.phone = phone;
+ }
+}
diff --git a/Assignments/fragmentToFragmnetMap/app/src/main/java/com/example/fragmenttofragmentmap/F1.java b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/app/src/main/java/com/example/fragmenttofragmentmap/F1.java
similarity index 100%
rename from Assignments/fragmentToFragmnetMap/app/src/main/java/com/example/fragmenttofragmentmap/F1.java
rename to Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/app/src/main/java/com/example/fragmenttofragmentmap/F1.java
diff --git a/Assignments/fragmentToFragmnetMap/app/src/main/java/com/example/fragmenttofragmentmap/F2.java b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/app/src/main/java/com/example/fragmenttofragmentmap/F2.java
similarity index 100%
rename from Assignments/fragmentToFragmnetMap/app/src/main/java/com/example/fragmenttofragmentmap/F2.java
rename to Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/app/src/main/java/com/example/fragmenttofragmentmap/F2.java
diff --git a/Assignments/fragmentToFragmnetMap/app/src/main/java/com/example/fragmenttofragmentmap/GenericActivityThatCreatesFragments.java b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/app/src/main/java/com/example/fragmenttofragmentmap/GenericActivityThatCreatesFragments.java
similarity index 100%
rename from Assignments/fragmentToFragmnetMap/app/src/main/java/com/example/fragmenttofragmentmap/GenericActivityThatCreatesFragments.java
rename to Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/app/src/main/java/com/example/fragmenttofragmentmap/GenericActivityThatCreatesFragments.java
diff --git a/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/app/src/main/res/drawable-v24/ic_launcher_foreground.xml b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/app/src/main/res/drawable-v24/ic_launcher_foreground.xml
new file mode 100644
index 0000000..2b068d1
--- /dev/null
+++ b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/app/src/main/res/drawable-v24/ic_launcher_foreground.xml
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/app/src/main/res/drawable/ic_launcher_background.xml b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/app/src/main/res/drawable/ic_launcher_background.xml
new file mode 100644
index 0000000..07d5da9
--- /dev/null
+++ b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/app/src/main/res/drawable/ic_launcher_background.xml
@@ -0,0 +1,170 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/app/src/main/res/layout/a.xml b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/app/src/main/res/layout/a.xml
new file mode 100644
index 0000000..f076f49
--- /dev/null
+++ b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/app/src/main/res/layout/a.xml
@@ -0,0 +1,6 @@
+
+
\ No newline at end of file
diff --git a/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/app/src/main/res/layout/activity_start.xml b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/app/src/main/res/layout/activity_start.xml
new file mode 100644
index 0000000..a9f5d83
--- /dev/null
+++ b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/app/src/main/res/layout/activity_start.xml
@@ -0,0 +1,6 @@
+
+
\ No newline at end of file
diff --git a/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/app/src/main/res/layout/contact.xml b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/app/src/main/res/layout/contact.xml
new file mode 100644
index 0000000..bd153e0
--- /dev/null
+++ b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/app/src/main/res/layout/contact.xml
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Assignments/fragmentToFragmnetMap/app/src/main/res/layout/f1.xml b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/app/src/main/res/layout/f1.xml
similarity index 100%
rename from Assignments/fragmentToFragmnetMap/app/src/main/res/layout/f1.xml
rename to Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/app/src/main/res/layout/f1.xml
diff --git a/Assignments/fragmentToFragmnetMap/app/src/main/res/layout/f2.xml b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/app/src/main/res/layout/f2.xml
similarity index 100%
rename from Assignments/fragmentToFragmnetMap/app/src/main/res/layout/f2.xml
rename to Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/app/src/main/res/layout/f2.xml
diff --git a/Assignments/fragmentToFragmnetMap/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
similarity index 100%
rename from Assignments/fragmentToFragmnetMap/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
rename to Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
diff --git a/Assignments/fragmentToFragmnetMap/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
similarity index 100%
rename from Assignments/fragmentToFragmnetMap/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
rename to Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
diff --git a/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/app/src/main/res/mipmap-hdpi/ic_launcher.webp b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/app/src/main/res/mipmap-hdpi/ic_launcher.webp
new file mode 100644
index 0000000..c209e78
Binary files /dev/null and b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/app/src/main/res/mipmap-hdpi/ic_launcher.webp differ
diff --git a/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp
new file mode 100644
index 0000000..b2dfe3d
Binary files /dev/null and b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp differ
diff --git a/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/app/src/main/res/mipmap-mdpi/ic_launcher.webp b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/app/src/main/res/mipmap-mdpi/ic_launcher.webp
new file mode 100644
index 0000000..4f0f1d6
Binary files /dev/null and b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/app/src/main/res/mipmap-mdpi/ic_launcher.webp differ
diff --git a/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp
new file mode 100644
index 0000000..62b611d
Binary files /dev/null and b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp differ
diff --git a/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/app/src/main/res/mipmap-xhdpi/ic_launcher.webp b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/app/src/main/res/mipmap-xhdpi/ic_launcher.webp
new file mode 100644
index 0000000..948a307
Binary files /dev/null and b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/app/src/main/res/mipmap-xhdpi/ic_launcher.webp differ
diff --git a/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp
new file mode 100644
index 0000000..1b9a695
Binary files /dev/null and b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp differ
diff --git a/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp
new file mode 100644
index 0000000..28d4b77
Binary files /dev/null and b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp differ
diff --git a/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp
new file mode 100644
index 0000000..9287f50
Binary files /dev/null and b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp differ
diff --git a/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp
new file mode 100644
index 0000000..aa7d642
Binary files /dev/null and b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp differ
diff --git a/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp
new file mode 100644
index 0000000..9126ae3
Binary files /dev/null and b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp differ
diff --git a/Assignments/fragmentToFragmnetMap/app/src/main/res/values-night/themes.xml b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/app/src/main/res/values-night/themes.xml
similarity index 100%
rename from Assignments/fragmentToFragmnetMap/app/src/main/res/values-night/themes.xml
rename to Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/app/src/main/res/values-night/themes.xml
diff --git a/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/app/src/main/res/values/colors.xml b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/app/src/main/res/values/colors.xml
new file mode 100644
index 0000000..f8c6127
--- /dev/null
+++ b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/app/src/main/res/values/colors.xml
@@ -0,0 +1,10 @@
+
+
+ #FFBB86FC
+ #FF6200EE
+ #FF3700B3
+ #FF03DAC5
+ #FF018786
+ #FF000000
+ #FFFFFFFF
+
\ No newline at end of file
diff --git a/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/app/src/main/res/values/strings.xml b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/app/src/main/res/values/strings.xml
new file mode 100644
index 0000000..29054a4
--- /dev/null
+++ b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/app/src/main/res/values/strings.xml
@@ -0,0 +1,5 @@
+
+ FragmentToFragmentMap
+
+ Hello blank fragment
+
\ No newline at end of file
diff --git a/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/app/src/main/res/values/themes.xml b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/app/src/main/res/values/themes.xml
new file mode 100644
index 0000000..dfc7100
--- /dev/null
+++ b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/app/src/main/res/values/themes.xml
@@ -0,0 +1,16 @@
+
+
+
+
\ No newline at end of file
diff --git a/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/app/src/main/res/xml/backup_rules.xml b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/app/src/main/res/xml/backup_rules.xml
new file mode 100644
index 0000000..fa0f996
--- /dev/null
+++ b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/app/src/main/res/xml/backup_rules.xml
@@ -0,0 +1,13 @@
+
+
+
+
\ No newline at end of file
diff --git a/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/app/src/main/res/xml/data_extraction_rules.xml b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/app/src/main/res/xml/data_extraction_rules.xml
new file mode 100644
index 0000000..9ee9997
--- /dev/null
+++ b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/app/src/main/res/xml/data_extraction_rules.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Assignments/fragmentToFragmnetMap/app/src/test/java/com/example/fragmenttofragmentmap/ExampleUnitTest.java b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/app/src/test/java/com/example/fragmenttofragmentmap/ExampleUnitTest.java
similarity index 100%
rename from Assignments/fragmentToFragmnetMap/app/src/test/java/com/example/fragmenttofragmentmap/ExampleUnitTest.java
rename to Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/app/src/test/java/com/example/fragmenttofragmentmap/ExampleUnitTest.java
diff --git a/Assignments/fragmentToFragmnetMap/build.gradle b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/build.gradle
similarity index 100%
rename from Assignments/fragmentToFragmnetMap/build.gradle
rename to Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/build.gradle
diff --git a/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/gradle.properties b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/gradle.properties
new file mode 100644
index 0000000..3e927b1
--- /dev/null
+++ b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/gradle.properties
@@ -0,0 +1,21 @@
+# Project-wide Gradle settings.
+# IDE (e.g. Android Studio) users:
+# Gradle settings configured through the IDE *will override*
+# any settings specified in this file.
+# For more details on how to configure your build environment visit
+# http://www.gradle.org/docs/current/userguide/build_environment.html
+# Specifies the JVM arguments used for the daemon process.
+# The setting is particularly useful for tweaking memory settings.
+org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8
+# When configured, Gradle will run in incubating parallel mode.
+# This option should only be used with decoupled projects. More details, visit
+# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
+# org.gradle.parallel=true
+# AndroidX package structure to make it clearer which packages are bundled with the
+# Android operating system, and which are packaged with your app's APK
+# https://developer.android.com/topic/libraries/support-library/androidx-rn
+android.useAndroidX=true
+# Enables namespacing of each library's R class so that its R class includes only the
+# resources declared in the library itself and none from the library's dependencies,
+# thereby reducing the size of the R class for that library
+android.nonTransitiveRClass=true
\ No newline at end of file
diff --git a/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/gradle/wrapper/gradle-wrapper.jar b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/gradle/wrapper/gradle-wrapper.jar
new file mode 100644
index 0000000..e708b1c
Binary files /dev/null and b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/Assignments/fragmentToFragmnetMap/gradle/wrapper/gradle-wrapper.properties b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/gradle/wrapper/gradle-wrapper.properties
similarity index 100%
rename from Assignments/fragmentToFragmnetMap/gradle/wrapper/gradle-wrapper.properties
rename to Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/gradle/wrapper/gradle-wrapper.properties
diff --git a/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/gradlew b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/gradlew
new file mode 100644
index 0000000..4f906e0
--- /dev/null
+++ b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/gradlew
@@ -0,0 +1,185 @@
+#!/usr/bin/env sh
+
+#
+# Copyright 2015 the original author or authors.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+##############################################################################
+##
+## Gradle start up script for UN*X
+##
+##############################################################################
+
+# Attempt to set APP_HOME
+# Resolve links: $0 may be a link
+PRG="$0"
+# Need this for relative symlinks.
+while [ -h "$PRG" ] ; do
+ ls=`ls -ld "$PRG"`
+ link=`expr "$ls" : '.*-> \(.*\)$'`
+ if expr "$link" : '/.*' > /dev/null; then
+ PRG="$link"
+ else
+ PRG=`dirname "$PRG"`"/$link"
+ fi
+done
+SAVED="`pwd`"
+cd "`dirname \"$PRG\"`/" >/dev/null
+APP_HOME="`pwd -P`"
+cd "$SAVED" >/dev/null
+
+APP_NAME="Gradle"
+APP_BASE_NAME=`basename "$0"`
+
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
+
+# Use the maximum available, or set MAX_FD != -1 to use that value.
+MAX_FD="maximum"
+
+warn () {
+ echo "$*"
+}
+
+die () {
+ echo
+ echo "$*"
+ echo
+ exit 1
+}
+
+# OS specific support (must be 'true' or 'false').
+cygwin=false
+msys=false
+darwin=false
+nonstop=false
+case "`uname`" in
+ CYGWIN* )
+ cygwin=true
+ ;;
+ Darwin* )
+ darwin=true
+ ;;
+ MINGW* )
+ msys=true
+ ;;
+ NONSTOP* )
+ nonstop=true
+ ;;
+esac
+
+CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
+
+
+# Determine the Java command to use to start the JVM.
+if [ -n "$JAVA_HOME" ] ; then
+ if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+ # IBM's JDK on AIX uses strange locations for the executables
+ JAVACMD="$JAVA_HOME/jre/sh/java"
+ else
+ JAVACMD="$JAVA_HOME/bin/java"
+ fi
+ if [ ! -x "$JAVACMD" ] ; then
+ die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+ fi
+else
+ JAVACMD="java"
+ which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+fi
+
+# Increase the maximum file descriptors if we can.
+if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
+ MAX_FD_LIMIT=`ulimit -H -n`
+ if [ $? -eq 0 ] ; then
+ if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
+ MAX_FD="$MAX_FD_LIMIT"
+ fi
+ ulimit -n $MAX_FD
+ if [ $? -ne 0 ] ; then
+ warn "Could not set maximum file descriptor limit: $MAX_FD"
+ fi
+ else
+ warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
+ fi
+fi
+
+# For Darwin, add options to specify how the application appears in the dock
+if $darwin; then
+ GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
+fi
+
+# For Cygwin or MSYS, switch paths to Windows format before running java
+if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then
+ APP_HOME=`cygpath --path --mixed "$APP_HOME"`
+ CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
+
+ JAVACMD=`cygpath --unix "$JAVACMD"`
+
+ # We build the pattern for arguments to be converted via cygpath
+ ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
+ SEP=""
+ for dir in $ROOTDIRSRAW ; do
+ ROOTDIRS="$ROOTDIRS$SEP$dir"
+ SEP="|"
+ done
+ OURCYGPATTERN="(^($ROOTDIRS))"
+ # Add a user-defined pattern to the cygpath arguments
+ if [ "$GRADLE_CYGPATTERN" != "" ] ; then
+ OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
+ fi
+ # Now convert the arguments - kludge to limit ourselves to /bin/sh
+ i=0
+ for arg in "$@" ; do
+ CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
+ CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
+
+ if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
+ eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
+ else
+ eval `echo args$i`="\"$arg\""
+ fi
+ i=`expr $i + 1`
+ done
+ case $i in
+ 0) set -- ;;
+ 1) set -- "$args0" ;;
+ 2) set -- "$args0" "$args1" ;;
+ 3) set -- "$args0" "$args1" "$args2" ;;
+ 4) set -- "$args0" "$args1" "$args2" "$args3" ;;
+ 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
+ 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
+ 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
+ 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
+ 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
+ esac
+fi
+
+# Escape application args
+save () {
+ for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
+ echo " "
+}
+APP_ARGS=`save "$@"`
+
+# Collect all arguments for the java command, following the shell quoting and substitution rules
+eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
+
+exec "$JAVACMD" "$@"
diff --git a/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/gradlew.bat b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/gradlew.bat
new file mode 100644
index 0000000..ac1b06f
--- /dev/null
+++ b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/gradlew.bat
@@ -0,0 +1,89 @@
+@rem
+@rem Copyright 2015 the original author or authors.
+@rem
+@rem Licensed under the Apache License, Version 2.0 (the "License");
+@rem you may not use this file except in compliance with the License.
+@rem You may obtain a copy of the License at
+@rem
+@rem https://www.apache.org/licenses/LICENSE-2.0
+@rem
+@rem Unless required by applicable law or agreed to in writing, software
+@rem distributed under the License is distributed on an "AS IS" BASIS,
+@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+@rem See the License for the specific language governing permissions and
+@rem limitations under the License.
+@rem
+
+@if "%DEBUG%" == "" @echo off
+@rem ##########################################################################
+@rem
+@rem Gradle startup script for Windows
+@rem
+@rem ##########################################################################
+
+@rem Set local scope for the variables with windows NT shell
+if "%OS%"=="Windows_NT" setlocal
+
+set DIRNAME=%~dp0
+if "%DIRNAME%" == "" set DIRNAME=.
+set APP_BASE_NAME=%~n0
+set APP_HOME=%DIRNAME%
+
+@rem Resolve any "." and ".." in APP_HOME to make it shorter.
+for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
+
+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
+
+@rem Find java.exe
+if defined JAVA_HOME goto findJavaFromJavaHome
+
+set JAVA_EXE=java.exe
+%JAVA_EXE% -version >NUL 2>&1
+if "%ERRORLEVEL%" == "0" goto execute
+
+echo.
+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:findJavaFromJavaHome
+set JAVA_HOME=%JAVA_HOME:"=%
+set JAVA_EXE=%JAVA_HOME%/bin/java.exe
+
+if exist "%JAVA_EXE%" goto execute
+
+echo.
+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:execute
+@rem Setup the command line
+
+set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
+
+
+@rem Execute Gradle
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
+
+:end
+@rem End local scope for the variables with windows NT shell
+if "%ERRORLEVEL%"=="0" goto mainEnd
+
+:fail
+rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
+rem the _cmd.exe /c_ return code!
+if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
+exit /b 1
+
+:mainEnd
+if "%OS%"=="Windows_NT" endlocal
+
+:omega
diff --git a/Assignments/fragmentToFragmnetMap/settings.gradle b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/settings.gradle
similarity index 100%
rename from Assignments/fragmentToFragmnetMap/settings.gradle
rename to Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap/settings.gradle
diff --git a/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/.gitignore b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/.gitignore
new file mode 100644
index 0000000..aa724b7
--- /dev/null
+++ b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/.gitignore
@@ -0,0 +1,15 @@
+*.iml
+.gradle
+/local.properties
+/.idea/caches
+/.idea/libraries
+/.idea/modules.xml
+/.idea/workspace.xml
+/.idea/navEditor.xml
+/.idea/assetWizardSettings.xml
+.DS_Store
+/build
+/captures
+.externalNativeBuild
+.cxx
+local.properties
diff --git a/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/app/.gitignore b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/app/.gitignore
new file mode 100644
index 0000000..42afabf
--- /dev/null
+++ b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/app/.gitignore
@@ -0,0 +1 @@
+/build
\ No newline at end of file
diff --git a/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/app/build.gradle b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/app/build.gradle
new file mode 100644
index 0000000..f682a27
--- /dev/null
+++ b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/app/build.gradle
@@ -0,0 +1,39 @@
+plugins {
+ id 'com.android.application'
+}
+
+android {
+ namespace 'com.example.fragmenttofragmentmap'
+ compileSdk 33
+
+ defaultConfig {
+ applicationId "com.example.fragmenttofragmentmap"
+ minSdk 21
+ targetSdk 33
+ versionCode 1
+ versionName "1.0"
+
+ testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
+ }
+
+ buildTypes {
+ release {
+ minifyEnabled false
+ proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
+ }
+ }
+ compileOptions {
+ sourceCompatibility JavaVersion.VERSION_1_8
+ targetCompatibility JavaVersion.VERSION_1_8
+ }
+}
+
+dependencies {
+
+ implementation 'androidx.appcompat:appcompat:1.6.1'
+ implementation 'com.google.android.material:material:1.8.0'
+ implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
+ testImplementation 'junit:junit:4.13.2'
+ androidTestImplementation 'androidx.test.ext:junit:1.1.5'
+ androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1'
+}
\ No newline at end of file
diff --git a/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/app/proguard-rules.pro b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/app/proguard-rules.pro
new file mode 100644
index 0000000..481bb43
--- /dev/null
+++ b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/app/proguard-rules.pro
@@ -0,0 +1,21 @@
+# Add project specific ProGuard rules here.
+# You can control the set of applied configuration files using the
+# proguardFiles setting in build.gradle.
+#
+# For more details, see
+# http://developer.android.com/guide/developing/tools/proguard.html
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+# public *;
+#}
+
+# Uncomment this to preserve the line number information for
+# debugging stack traces.
+#-keepattributes SourceFile,LineNumberTable
+
+# If you keep the line number information, uncomment this to
+# hide the original source file name.
+#-renamesourcefileattribute SourceFile
\ No newline at end of file
diff --git a/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/app/src/androidTest/java/com/example/fragmenttofragmentmap/ExampleInstrumentedTest.java b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/app/src/androidTest/java/com/example/fragmenttofragmentmap/ExampleInstrumentedTest.java
new file mode 100644
index 0000000..4032873
--- /dev/null
+++ b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/app/src/androidTest/java/com/example/fragmenttofragmentmap/ExampleInstrumentedTest.java
@@ -0,0 +1,28 @@
+package com.example.fragmenttofragmentmap;
+
+import android.content.Context;
+
+import androidx.test.platform.app.InstrumentationRegistry;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import static org.junit.Assert.*;
+
+/**
+ * Instrumented test, which will execute on an Android device.
+ *
+ * @see Testing documentation
+ */
+@RunWith(AndroidJUnit4.class)
+public class ExampleInstrumentedTest
+{
+ @Test
+ public void useAppContext()
+ {
+ // Context of the app under test.
+ Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext();
+ assertEquals("com.example.fragmenttofragmentmap", appContext.getPackageName());
+ }
+}
\ No newline at end of file
diff --git a/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/app/src/main/AndroidManifest.xml b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/app/src/main/AndroidManifest.xml
new file mode 100644
index 0000000..3a6bb1c
--- /dev/null
+++ b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/app/src/main/AndroidManifest.xml
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/app/src/main/java/com/example/fragmenttofragmentmap/A.java b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/app/src/main/java/com/example/fragmenttofragmentmap/A.java
new file mode 100644
index 0000000..e2cbc77
--- /dev/null
+++ b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/app/src/main/java/com/example/fragmenttofragmentmap/A.java
@@ -0,0 +1,55 @@
+package com.example.fragmenttofragmentmap;
+
+import androidx.annotation.Nullable;
+import androidx.fragment.app.Fragment;
+
+import android.content.Intent;
+import android.os.Bundle;
+
+import java.io.Serializable;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.TreeMap;
+
+public class A extends GenericActivityThatCreatesFragments
+{
+ private Map map;
+
+ @Override
+ protected Fragment createFragment()
+ {
+ map = new HashMap();
+ map.put("london", "mary");
+ map.put("athens", "aaron");
+ map.put("new york", "byron");
+ map.put("paris", "a");
+
+ F1 f1 = new F1();
+ Bundle b = new Bundle();
+ b.putSerializable("ID_MAP_ORIGINAL_FROM_A",(Serializable) this.map);
+ f1.setArguments( b );
+ return f1;
+ }
+
+
+
+ @Override
+ protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent i)
+ {
+ super.onActivityResult(requestCode, resultCode, i);
+ if (requestCode == 888)
+ {
+ //the i.getSerializableExtra will convert the TreeMap of the bundle into HashMap
+ //so create from the HashMap a TreeMap
+ Map m = ( Map ) i.getSerializableExtra("ID_SORTED_MAP_FROM_F2");
+ TreeMap t = new TreeMap( ( Map)i.getSerializableExtra("ID_SORTED_MAP_FROM_F2"));
+
+ Bundle b = new Bundle();
+ b.putSerializable("ID_SORTED_MAP_FROM_A", (Serializable) t);
+
+ getGenericFragment().setArguments( b );
+
+ }
+ }
+
+}
diff --git a/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/app/src/main/java/com/example/fragmenttofragmentmap/B.java b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/app/src/main/java/com/example/fragmenttofragmentmap/B.java
new file mode 100644
index 0000000..15cd3df
--- /dev/null
+++ b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/app/src/main/java/com/example/fragmenttofragmentmap/B.java
@@ -0,0 +1,50 @@
+package com.example.fragmenttofragmentmap;
+
+import android.content.Intent;
+import android.os.Bundle;
+
+import androidx.annotation.Nullable;
+import androidx.fragment.app.Fragment;
+
+import java.io.Serializable;
+import java.util.Map;
+import java.util.TreeMap;
+
+public class B extends GenericActivityThatCreatesFragments
+{
+Map map;
+
+ @Override
+ protected Fragment createFragment()
+ {
+ Intent i = getIntent();
+ Bundle b = i.getBundleExtra("ID_F1");
+ map = ( Map ) b.getSerializable("MAP_FROM_F1" );
+ F2 f2 = new F2();
+ Bundle b1 = new Bundle();
+ b1.putSerializable("ID_MAP_ORIGINAL_FROM_B",(Serializable) this.map);
+ f2.setArguments( b1 );
+ return f2;
+ }
+
+
+
+
+ @Override
+ protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent i)
+ {
+ super.onActivityResult(requestCode, resultCode, i);
+ if (requestCode == 777)
+ {
+ //the i.getSerializableExtra will convert the TreeMap of the bundle into HashMap
+ //so create from the HashMap a TreeMap
+ Map m = ( Map ) i.getSerializableExtra("ID_SORTED_MAP_FROM_F3");
+
+ Bundle b = new Bundle();
+ b.putSerializable("ID_SORTED_MAP_FROM_C", (Serializable) m);
+
+ getGenericFragment().setArguments( b );
+
+ }
+ }
+}
\ No newline at end of file
diff --git a/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/app/src/main/java/com/example/fragmenttofragmentmap/C.java b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/app/src/main/java/com/example/fragmenttofragmentmap/C.java
new file mode 100644
index 0000000..a77b784
--- /dev/null
+++ b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/app/src/main/java/com/example/fragmenttofragmentmap/C.java
@@ -0,0 +1,28 @@
+package com.example.fragmenttofragmentmap;
+
+import android.content.Intent;
+import android.os.Bundle;
+
+import androidx.fragment.app.Fragment;
+
+import java.io.Serializable;
+import java.util.Map;
+
+public class C extends GenericActivityThatCreatesFragments
+
+{
+ Map map;
+
+ @Override
+ protected Fragment createFragment()
+ {
+ Intent i = getIntent();
+ Bundle b = i.getBundleExtra("ID_F2_TO_F3");
+ map = ( Map ) b.getSerializable("MAP_FROM_F2_FOR_F3" );
+ F3 f3 = new F3();
+ Bundle b1 = new Bundle();
+ b1.putSerializable("ID_MAP_ORIGINAL_FROM_C",(Serializable) this.map);
+ f3.setArguments( b1 );
+ return f3;
+ }
+}
diff --git a/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/app/src/main/java/com/example/fragmenttofragmentmap/F1.java b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/app/src/main/java/com/example/fragmenttofragmentmap/F1.java
new file mode 100644
index 0000000..0cb5f50
--- /dev/null
+++ b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/app/src/main/java/com/example/fragmenttofragmentmap/F1.java
@@ -0,0 +1,103 @@
+package com.example.fragmenttofragmentmap;
+
+import android.content.Intent;
+import android.os.Bundle;
+
+import androidx.fragment.app.Fragment;
+
+import android.util.Log;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.Button;
+import android.widget.TextView;
+
+import java.io.Serializable;
+import java.util.Map;
+
+public class F1 extends Fragment //Resembles the RecycleView
+{
+ TextView originalMap;
+ TextView sortedMap;
+ Button sendtoF2;
+ Map map;
+ Map treeMap;
+
+
+ @Override
+ public void onCreate(Bundle savedInstanceState)
+ {
+ super.onCreate(savedInstanceState);
+
+ Bundle b = getArguments();
+ map = (Map) b.getSerializable("ID_MAP_ORIGINAL_FROM_A");
+ }
+ @Override
+ public View onCreateView(
+ LayoutInflater inflater, ViewGroup container,
+ Bundle savedInstanceState)
+ {
+ View v = inflater.inflate(R.layout.f1, container, false);
+ originalMap = v.findViewById(R.id.textViewMapOriginal);
+ sortedMap = v.findViewById(R.id.textViewMapSorted);
+ sendtoF2 = v.findViewById(R.id.buttonSendToF2);
+
+ originalMap.setText(map.toString());
+
+ originalMap.setOnClickListener(new View.OnClickListener()
+ {
+ @Override
+ public void onClick(View v)
+ {
+ GenericActivityThatCreatesFragments a = (GenericActivityThatCreatesFragments) getActivity();
+ Intent i = new Intent(a, B.class);
+ Bundle b = new Bundle();
+
+ b.putSerializable("MAP_FROM_F1",
+ (Serializable) F1.this.map);
+ i.putExtra("ID_F1", b);
+ Map m = ( Map) b.getSerializable("MAP_FROM_F1");
+ a.startActivityForResult(i, 888);
+ }
+ });
+
+ this.sendtoF2.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ GenericActivityThatCreatesFragments a = (GenericActivityThatCreatesFragments) getActivity();
+
+ Intent i = new Intent(a, B.class);
+ Bundle b = new Bundle();
+
+ b.putSerializable("MAP_FROM_F1",
+ (Serializable) F1.this.map);
+ i.putExtra("ID_F1", b);
+ Map m = ( Map) b.getSerializable("MAP_FROM_F1");
+ Log.d("THE MAP --------", m.toString());
+ a.startActivityForResult(i, 888);
+
+ }
+ });
+
+ return v;
+ }
+
+ @Override
+ public void onResume()
+ {
+ super.onResume();
+ if (getArguments() != null)
+ {
+
+ treeMap = (Map) getArguments().getSerializable(
+ "ID_SORTED_MAP_FROM_A");
+ if ( treeMap != null)
+ this.sortedMap.setText(treeMap.toString());
+
+ }
+ }
+
+
+
+
+}
\ No newline at end of file
diff --git a/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/app/src/main/java/com/example/fragmenttofragmentmap/F2.java b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/app/src/main/java/com/example/fragmenttofragmentmap/F2.java
new file mode 100644
index 0000000..e079a5d
--- /dev/null
+++ b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/app/src/main/java/com/example/fragmenttofragmentmap/F2.java
@@ -0,0 +1,125 @@
+package com.example.fragmenttofragmentmap;
+
+import android.content.Intent;
+import android.os.Bundle;
+import android.util.Log;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.Button;
+import android.widget.TextView;
+
+import androidx.fragment.app.Fragment;
+
+import java.io.Serializable;
+import java.util.Map;
+import java.util.TreeMap;
+
+public class F2 extends Fragment //Resebles teh RecycleView
+{
+ TextView originalMap;
+ TextView sortedMap;
+ Button sendBackToF1;
+ Button sendToF3;
+
+ Map map;
+ Map treeMap;
+ public F2()
+ {
+ }
+
+ @Override
+ public void onCreate(Bundle savedInstanceState)
+ {
+ super.onCreate(savedInstanceState);
+
+ Bundle b = getArguments();
+ map = (Map) b.getSerializable("ID_MAP_ORIGINAL_FROM_B");
+
+ }
+
+ @Override
+ public View onCreateView(
+ LayoutInflater inflater, ViewGroup container,
+ Bundle savedInstanceState)
+ {
+ View v = inflater.inflate(R.layout.f2, container, false);
+ originalMap = v.findViewById(R.id.textViewMapOriginalAsParameter_2);
+ sortedMap = v.findViewById(R.id.textViewMapSorted_2);
+ originalMap.setText(map.toString());
+ sendBackToF1 = v.findViewById(R.id.buttonSendToF2_2);
+ sendToF3 = v.findViewById(R.id.buttonSendToF3_2);
+ treeMap = new TreeMap( map);
+
+ sortedMap.setText(treeMap.toString());
+
+ originalMap.setOnClickListener(new View.OnClickListener()
+ {
+ @Override
+ public void onClick(View v)
+ {
+
+ Intent i = new Intent();
+ treeMap.put("nona", "extra 1");
+ treeMap.put("paula", "extra 2");
+ i.putExtra("ID_SORTED_MAP_FROM_F2", (Serializable) F2.this.treeMap);
+ getActivity().setResult(888, i);
+ }
+ });
+ this.sendBackToF1.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+
+ Intent i = new Intent();
+ try {
+ treeMap.put("nona", "extra 1");
+ treeMap.put("paula", "extra 2");
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
+ i.putExtra("ID_SORTED_MAP_FROM_F2", (Serializable) F2.this.treeMap);
+ getActivity().setResult(888, i);
+
+ GenericActivityThatCreatesFragments a = (GenericActivityThatCreatesFragments) getActivity();
+ a.finish();
+
+ }
+ });
+ this.sendToF3.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ GenericActivityThatCreatesFragments b = (GenericActivityThatCreatesFragments) getActivity();
+
+ Intent i = new Intent(b, C.class);
+ Bundle bundle = new Bundle();
+ treeMap.put("nona", "extra 1");
+ treeMap.put("paula", "extra 2");
+ bundle.putSerializable("MAP_FROM_F2_FOR_F3",
+ (Serializable) F2.this.treeMap);
+ i.putExtra("ID_F2_TO_F3", bundle);
+ b.startActivityForResult(i, 777);
+
+ }
+ });
+
+ return v;
+ }
+
+
+ public void onResume()
+ {
+ super.onResume();
+ if (getArguments() != null)
+ {
+
+ Map tm = (Map) getArguments().getSerializable(
+ "ID_SORTED_MAP_FROM_C");
+ if ( tm != null)
+ {
+ this.sortedMap.setText(tm.toString());
+ this.treeMap = tm;
+ }
+
+ }
+ }
+}
\ No newline at end of file
diff --git a/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/app/src/main/java/com/example/fragmenttofragmentmap/F3.java b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/app/src/main/java/com/example/fragmenttofragmentmap/F3.java
new file mode 100644
index 0000000..4988b8b
--- /dev/null
+++ b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/app/src/main/java/com/example/fragmenttofragmentmap/F3.java
@@ -0,0 +1,70 @@
+package com.example.fragmenttofragmentmap;
+
+import android.content.Intent;
+import android.os.Bundle;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.Button;
+import android.widget.TextView;
+
+import androidx.fragment.app.Fragment;
+
+import java.io.Serializable;
+import java.util.Map;
+import java.util.TreeMap;
+
+public class F3 extends Fragment //Resebles teh RecycleView
+{
+ TextView textView;
+
+ Button sendBackToF2;
+
+
+ Map map;
+ public F3()
+ {
+ }
+
+ @Override
+ public void onCreate(Bundle savedInstanceState)
+ {
+ super.onCreate(savedInstanceState);
+
+ Bundle b = getArguments();
+ map = (Map) b.getSerializable("ID_MAP_ORIGINAL_FROM_C");
+
+ }
+
+ @Override
+ public View onCreateView(
+ LayoutInflater inflater, ViewGroup container,
+ Bundle savedInstanceState)
+ {
+ View v = inflater.inflate(R.layout.f3, container, false);
+ textView = v.findViewById(R.id.textViewMapSorted_3);
+ textView.setText(map.toString());
+ sendBackToF2 = v.findViewById(R.id.buttonSendBackToF2_3);
+
+
+
+ this.sendBackToF2.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+
+ Intent i = new Intent();
+ map.put("F3", "Sun");
+
+ i.putExtra("ID_SORTED_MAP_FROM_F3", (Serializable) F3.this.map);
+ getActivity().setResult(777, i);
+
+
+ GenericActivityThatCreatesFragments c = (GenericActivityThatCreatesFragments) getActivity();
+ c.finish();
+
+ }
+ });
+
+ return v;
+ }
+}
\ No newline at end of file
diff --git a/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/app/src/main/java/com/example/fragmenttofragmentmap/GenericActivityThatCreatesFragments.java b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/app/src/main/java/com/example/fragmenttofragmentmap/GenericActivityThatCreatesFragments.java
new file mode 100644
index 0000000..744202e
--- /dev/null
+++ b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/app/src/main/java/com/example/fragmenttofragmentmap/GenericActivityThatCreatesFragments.java
@@ -0,0 +1,32 @@
+package com.example.fragmenttofragmentmap;
+
+import android.os.Bundle;
+
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.fragment.app.Fragment;
+import androidx.fragment.app.FragmentManager;
+
+abstract public class
+GenericActivityThatCreatesFragments extends AppCompatActivity
+{
+ Fragment fragment;
+ public Fragment getGenericFragment()
+ {
+ return fragment;
+ };
+ protected abstract Fragment createFragment();
+ @Override
+ protected void onCreate(Bundle savedInstanceState)
+ {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.a);
+ FragmentManager fm = getSupportFragmentManager();
+ this.fragment = fm.findFragmentById( R.id.f1_container );
+ if (this.fragment == null)
+ {
+ this.fragment = createFragment();
+ fm.beginTransaction().add(R.id.f1_container, fragment).commit();
+ }
+ }
+
+}
\ No newline at end of file
diff --git a/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/app/src/main/res/drawable-v24/ic_launcher_foreground.xml b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/app/src/main/res/drawable-v24/ic_launcher_foreground.xml
new file mode 100644
index 0000000..2b068d1
--- /dev/null
+++ b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/app/src/main/res/drawable-v24/ic_launcher_foreground.xml
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/app/src/main/res/drawable/ic_launcher_background.xml b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/app/src/main/res/drawable/ic_launcher_background.xml
new file mode 100644
index 0000000..07d5da9
--- /dev/null
+++ b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/app/src/main/res/drawable/ic_launcher_background.xml
@@ -0,0 +1,170 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/app/src/main/res/layout/a.xml b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/app/src/main/res/layout/a.xml
new file mode 100644
index 0000000..f076f49
--- /dev/null
+++ b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/app/src/main/res/layout/a.xml
@@ -0,0 +1,6 @@
+
+
\ No newline at end of file
diff --git a/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/app/src/main/res/layout/activity_start.xml b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/app/src/main/res/layout/activity_start.xml
new file mode 100644
index 0000000..a9f5d83
--- /dev/null
+++ b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/app/src/main/res/layout/activity_start.xml
@@ -0,0 +1,6 @@
+
+
\ No newline at end of file
diff --git a/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/app/src/main/res/layout/f1.xml b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/app/src/main/res/layout/f1.xml
new file mode 100644
index 0000000..9dfcf6a
--- /dev/null
+++ b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/app/src/main/res/layout/f1.xml
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/app/src/main/res/layout/f2.xml b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/app/src/main/res/layout/f2.xml
new file mode 100644
index 0000000..b7afed8
--- /dev/null
+++ b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/app/src/main/res/layout/f2.xml
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/app/src/main/res/layout/f3.xml b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/app/src/main/res/layout/f3.xml
new file mode 100644
index 0000000..2a711cb
--- /dev/null
+++ b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/app/src/main/res/layout/f3.xml
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
new file mode 100644
index 0000000..eca70cf
--- /dev/null
+++ b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
new file mode 100644
index 0000000..eca70cf
--- /dev/null
+++ b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/app/src/main/res/mipmap-hdpi/ic_launcher.webp b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/app/src/main/res/mipmap-hdpi/ic_launcher.webp
new file mode 100644
index 0000000..c209e78
Binary files /dev/null and b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/app/src/main/res/mipmap-hdpi/ic_launcher.webp differ
diff --git a/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp
new file mode 100644
index 0000000..b2dfe3d
Binary files /dev/null and b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp differ
diff --git a/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/app/src/main/res/mipmap-mdpi/ic_launcher.webp b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/app/src/main/res/mipmap-mdpi/ic_launcher.webp
new file mode 100644
index 0000000..4f0f1d6
Binary files /dev/null and b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/app/src/main/res/mipmap-mdpi/ic_launcher.webp differ
diff --git a/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp
new file mode 100644
index 0000000..62b611d
Binary files /dev/null and b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp differ
diff --git a/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/app/src/main/res/mipmap-xhdpi/ic_launcher.webp b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/app/src/main/res/mipmap-xhdpi/ic_launcher.webp
new file mode 100644
index 0000000..948a307
Binary files /dev/null and b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/app/src/main/res/mipmap-xhdpi/ic_launcher.webp differ
diff --git a/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp
new file mode 100644
index 0000000..1b9a695
Binary files /dev/null and b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp differ
diff --git a/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp
new file mode 100644
index 0000000..28d4b77
Binary files /dev/null and b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp differ
diff --git a/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp
new file mode 100644
index 0000000..9287f50
Binary files /dev/null and b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp differ
diff --git a/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp
new file mode 100644
index 0000000..aa7d642
Binary files /dev/null and b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp differ
diff --git a/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp
new file mode 100644
index 0000000..9126ae3
Binary files /dev/null and b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp differ
diff --git a/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/app/src/main/res/values-night/themes.xml b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/app/src/main/res/values-night/themes.xml
new file mode 100644
index 0000000..fc2ddc4
--- /dev/null
+++ b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/app/src/main/res/values-night/themes.xml
@@ -0,0 +1,16 @@
+
+
+
+
\ No newline at end of file
diff --git a/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/app/src/main/res/values/colors.xml b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/app/src/main/res/values/colors.xml
new file mode 100644
index 0000000..f8c6127
--- /dev/null
+++ b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/app/src/main/res/values/colors.xml
@@ -0,0 +1,10 @@
+
+
+ #FFBB86FC
+ #FF6200EE
+ #FF3700B3
+ #FF03DAC5
+ #FF018786
+ #FF000000
+ #FFFFFFFF
+
\ No newline at end of file
diff --git a/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/app/src/main/res/values/strings.xml b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/app/src/main/res/values/strings.xml
new file mode 100644
index 0000000..29054a4
--- /dev/null
+++ b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/app/src/main/res/values/strings.xml
@@ -0,0 +1,5 @@
+
+ FragmentToFragmentMap
+
+ Hello blank fragment
+
\ No newline at end of file
diff --git a/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/app/src/main/res/values/themes.xml b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/app/src/main/res/values/themes.xml
new file mode 100644
index 0000000..dfc7100
--- /dev/null
+++ b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/app/src/main/res/values/themes.xml
@@ -0,0 +1,16 @@
+
+
+
+
\ No newline at end of file
diff --git a/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/app/src/main/res/xml/backup_rules.xml b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/app/src/main/res/xml/backup_rules.xml
new file mode 100644
index 0000000..fa0f996
--- /dev/null
+++ b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/app/src/main/res/xml/backup_rules.xml
@@ -0,0 +1,13 @@
+
+
+
+
\ No newline at end of file
diff --git a/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/app/src/main/res/xml/data_extraction_rules.xml b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/app/src/main/res/xml/data_extraction_rules.xml
new file mode 100644
index 0000000..9ee9997
--- /dev/null
+++ b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/app/src/main/res/xml/data_extraction_rules.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/app/src/test/java/com/example/fragmenttofragmentmap/ExampleUnitTest.java b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/app/src/test/java/com/example/fragmenttofragmentmap/ExampleUnitTest.java
new file mode 100644
index 0000000..69f517c
--- /dev/null
+++ b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/app/src/test/java/com/example/fragmenttofragmentmap/ExampleUnitTest.java
@@ -0,0 +1,19 @@
+package com.example.fragmenttofragmentmap;
+
+import org.junit.Test;
+
+import static org.junit.Assert.*;
+
+/**
+ * Example local unit test, which will execute on the development machine (host).
+ *
+ * @see Testing documentation
+ */
+public class ExampleUnitTest
+{
+ @Test
+ public void addition_isCorrect()
+ {
+ assertEquals(4, 2 + 2);
+ }
+}
\ No newline at end of file
diff --git a/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/build.gradle b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/build.gradle
new file mode 100644
index 0000000..71b99f4
--- /dev/null
+++ b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/build.gradle
@@ -0,0 +1,5 @@
+// Top-level build file where you can add configuration options common to all sub-projects/modules.
+plugins {
+ id 'com.android.application' version '7.3.1' apply false
+ id 'com.android.library' version '7.3.1' apply false
+}
\ No newline at end of file
diff --git a/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/gradle.properties b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/gradle.properties
new file mode 100644
index 0000000..3e927b1
--- /dev/null
+++ b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/gradle.properties
@@ -0,0 +1,21 @@
+# Project-wide Gradle settings.
+# IDE (e.g. Android Studio) users:
+# Gradle settings configured through the IDE *will override*
+# any settings specified in this file.
+# For more details on how to configure your build environment visit
+# http://www.gradle.org/docs/current/userguide/build_environment.html
+# Specifies the JVM arguments used for the daemon process.
+# The setting is particularly useful for tweaking memory settings.
+org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8
+# When configured, Gradle will run in incubating parallel mode.
+# This option should only be used with decoupled projects. More details, visit
+# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
+# org.gradle.parallel=true
+# AndroidX package structure to make it clearer which packages are bundled with the
+# Android operating system, and which are packaged with your app's APK
+# https://developer.android.com/topic/libraries/support-library/androidx-rn
+android.useAndroidX=true
+# Enables namespacing of each library's R class so that its R class includes only the
+# resources declared in the library itself and none from the library's dependencies,
+# thereby reducing the size of the R class for that library
+android.nonTransitiveRClass=true
\ No newline at end of file
diff --git a/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/gradle/wrapper/gradle-wrapper.jar b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/gradle/wrapper/gradle-wrapper.jar
new file mode 100644
index 0000000..e708b1c
Binary files /dev/null and b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/gradle/wrapper/gradle-wrapper.properties b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/gradle/wrapper/gradle-wrapper.properties
new file mode 100644
index 0000000..04c1098
--- /dev/null
+++ b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/gradle/wrapper/gradle-wrapper.properties
@@ -0,0 +1,6 @@
+#Wed Mar 15 11:05:12 CDT 2023
+distributionBase=GRADLE_USER_HOME
+distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-bin.zip
+distributionPath=wrapper/dists
+zipStorePath=wrapper/dists
+zipStoreBase=GRADLE_USER_HOME
diff --git a/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/gradlew b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/gradlew
new file mode 100644
index 0000000..4f906e0
--- /dev/null
+++ b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/gradlew
@@ -0,0 +1,185 @@
+#!/usr/bin/env sh
+
+#
+# Copyright 2015 the original author or authors.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+##############################################################################
+##
+## Gradle start up script for UN*X
+##
+##############################################################################
+
+# Attempt to set APP_HOME
+# Resolve links: $0 may be a link
+PRG="$0"
+# Need this for relative symlinks.
+while [ -h "$PRG" ] ; do
+ ls=`ls -ld "$PRG"`
+ link=`expr "$ls" : '.*-> \(.*\)$'`
+ if expr "$link" : '/.*' > /dev/null; then
+ PRG="$link"
+ else
+ PRG=`dirname "$PRG"`"/$link"
+ fi
+done
+SAVED="`pwd`"
+cd "`dirname \"$PRG\"`/" >/dev/null
+APP_HOME="`pwd -P`"
+cd "$SAVED" >/dev/null
+
+APP_NAME="Gradle"
+APP_BASE_NAME=`basename "$0"`
+
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
+
+# Use the maximum available, or set MAX_FD != -1 to use that value.
+MAX_FD="maximum"
+
+warn () {
+ echo "$*"
+}
+
+die () {
+ echo
+ echo "$*"
+ echo
+ exit 1
+}
+
+# OS specific support (must be 'true' or 'false').
+cygwin=false
+msys=false
+darwin=false
+nonstop=false
+case "`uname`" in
+ CYGWIN* )
+ cygwin=true
+ ;;
+ Darwin* )
+ darwin=true
+ ;;
+ MINGW* )
+ msys=true
+ ;;
+ NONSTOP* )
+ nonstop=true
+ ;;
+esac
+
+CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
+
+
+# Determine the Java command to use to start the JVM.
+if [ -n "$JAVA_HOME" ] ; then
+ if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+ # IBM's JDK on AIX uses strange locations for the executables
+ JAVACMD="$JAVA_HOME/jre/sh/java"
+ else
+ JAVACMD="$JAVA_HOME/bin/java"
+ fi
+ if [ ! -x "$JAVACMD" ] ; then
+ die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+ fi
+else
+ JAVACMD="java"
+ which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+fi
+
+# Increase the maximum file descriptors if we can.
+if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
+ MAX_FD_LIMIT=`ulimit -H -n`
+ if [ $? -eq 0 ] ; then
+ if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
+ MAX_FD="$MAX_FD_LIMIT"
+ fi
+ ulimit -n $MAX_FD
+ if [ $? -ne 0 ] ; then
+ warn "Could not set maximum file descriptor limit: $MAX_FD"
+ fi
+ else
+ warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
+ fi
+fi
+
+# For Darwin, add options to specify how the application appears in the dock
+if $darwin; then
+ GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
+fi
+
+# For Cygwin or MSYS, switch paths to Windows format before running java
+if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then
+ APP_HOME=`cygpath --path --mixed "$APP_HOME"`
+ CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
+
+ JAVACMD=`cygpath --unix "$JAVACMD"`
+
+ # We build the pattern for arguments to be converted via cygpath
+ ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
+ SEP=""
+ for dir in $ROOTDIRSRAW ; do
+ ROOTDIRS="$ROOTDIRS$SEP$dir"
+ SEP="|"
+ done
+ OURCYGPATTERN="(^($ROOTDIRS))"
+ # Add a user-defined pattern to the cygpath arguments
+ if [ "$GRADLE_CYGPATTERN" != "" ] ; then
+ OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
+ fi
+ # Now convert the arguments - kludge to limit ourselves to /bin/sh
+ i=0
+ for arg in "$@" ; do
+ CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
+ CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
+
+ if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
+ eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
+ else
+ eval `echo args$i`="\"$arg\""
+ fi
+ i=`expr $i + 1`
+ done
+ case $i in
+ 0) set -- ;;
+ 1) set -- "$args0" ;;
+ 2) set -- "$args0" "$args1" ;;
+ 3) set -- "$args0" "$args1" "$args2" ;;
+ 4) set -- "$args0" "$args1" "$args2" "$args3" ;;
+ 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
+ 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
+ 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
+ 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
+ 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
+ esac
+fi
+
+# Escape application args
+save () {
+ for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
+ echo " "
+}
+APP_ARGS=`save "$@"`
+
+# Collect all arguments for the java command, following the shell quoting and substitution rules
+eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
+
+exec "$JAVACMD" "$@"
diff --git a/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/gradlew.bat b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/gradlew.bat
new file mode 100644
index 0000000..ac1b06f
--- /dev/null
+++ b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/gradlew.bat
@@ -0,0 +1,89 @@
+@rem
+@rem Copyright 2015 the original author or authors.
+@rem
+@rem Licensed under the Apache License, Version 2.0 (the "License");
+@rem you may not use this file except in compliance with the License.
+@rem You may obtain a copy of the License at
+@rem
+@rem https://www.apache.org/licenses/LICENSE-2.0
+@rem
+@rem Unless required by applicable law or agreed to in writing, software
+@rem distributed under the License is distributed on an "AS IS" BASIS,
+@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+@rem See the License for the specific language governing permissions and
+@rem limitations under the License.
+@rem
+
+@if "%DEBUG%" == "" @echo off
+@rem ##########################################################################
+@rem
+@rem Gradle startup script for Windows
+@rem
+@rem ##########################################################################
+
+@rem Set local scope for the variables with windows NT shell
+if "%OS%"=="Windows_NT" setlocal
+
+set DIRNAME=%~dp0
+if "%DIRNAME%" == "" set DIRNAME=.
+set APP_BASE_NAME=%~n0
+set APP_HOME=%DIRNAME%
+
+@rem Resolve any "." and ".." in APP_HOME to make it shorter.
+for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
+
+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
+
+@rem Find java.exe
+if defined JAVA_HOME goto findJavaFromJavaHome
+
+set JAVA_EXE=java.exe
+%JAVA_EXE% -version >NUL 2>&1
+if "%ERRORLEVEL%" == "0" goto execute
+
+echo.
+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:findJavaFromJavaHome
+set JAVA_HOME=%JAVA_HOME:"=%
+set JAVA_EXE=%JAVA_HOME%/bin/java.exe
+
+if exist "%JAVA_EXE%" goto execute
+
+echo.
+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:execute
+@rem Setup the command line
+
+set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
+
+
+@rem Execute Gradle
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
+
+:end
+@rem End local scope for the variables with windows NT shell
+if "%ERRORLEVEL%"=="0" goto mainEnd
+
+:fail
+rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
+rem the _cmd.exe /c_ return code!
+if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
+exit /b 1
+
+:mainEnd
+if "%OS%"=="Windows_NT" endlocal
+
+:omega
diff --git a/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/settings.gradle b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/settings.gradle
new file mode 100644
index 0000000..30d9c7c
--- /dev/null
+++ b/Assignments/Old FragmentToFragment Projects/fragmentToFragmnetMap24/settings.gradle
@@ -0,0 +1,16 @@
+pluginManagement {
+ repositories {
+ gradlePluginPortal()
+ google()
+ mavenCentral()
+ }
+}
+dependencyResolutionManagement {
+ repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
+ repositories {
+ google()
+ mavenCentral()
+ }
+}
+rootProject.name = "FragmentToFragmentMap"
+include ':app'
diff --git a/Assignments/mp2_sample/.gitignore b/Assignments/mp2_sample/.gitignore
new file mode 100644
index 0000000..aa724b7
--- /dev/null
+++ b/Assignments/mp2_sample/.gitignore
@@ -0,0 +1,15 @@
+*.iml
+.gradle
+/local.properties
+/.idea/caches
+/.idea/libraries
+/.idea/modules.xml
+/.idea/workspace.xml
+/.idea/navEditor.xml
+/.idea/assetWizardSettings.xml
+.DS_Store
+/build
+/captures
+.externalNativeBuild
+.cxx
+local.properties
diff --git a/Assignments/mp2_sample/app/.gitignore b/Assignments/mp2_sample/app/.gitignore
new file mode 100644
index 0000000..42afabf
--- /dev/null
+++ b/Assignments/mp2_sample/app/.gitignore
@@ -0,0 +1 @@
+/build
\ No newline at end of file
diff --git a/Assignments/mp2_sample/app/build.gradle b/Assignments/mp2_sample/app/build.gradle
new file mode 100644
index 0000000..f682a27
--- /dev/null
+++ b/Assignments/mp2_sample/app/build.gradle
@@ -0,0 +1,39 @@
+plugins {
+ id 'com.android.application'
+}
+
+android {
+ namespace 'com.example.fragmenttofragmentmap'
+ compileSdk 33
+
+ defaultConfig {
+ applicationId "com.example.fragmenttofragmentmap"
+ minSdk 21
+ targetSdk 33
+ versionCode 1
+ versionName "1.0"
+
+ testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
+ }
+
+ buildTypes {
+ release {
+ minifyEnabled false
+ proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
+ }
+ }
+ compileOptions {
+ sourceCompatibility JavaVersion.VERSION_1_8
+ targetCompatibility JavaVersion.VERSION_1_8
+ }
+}
+
+dependencies {
+
+ implementation 'androidx.appcompat:appcompat:1.6.1'
+ implementation 'com.google.android.material:material:1.8.0'
+ implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
+ testImplementation 'junit:junit:4.13.2'
+ androidTestImplementation 'androidx.test.ext:junit:1.1.5'
+ androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1'
+}
\ No newline at end of file
diff --git a/Assignments/mp2_sample/app/proguard-rules.pro b/Assignments/mp2_sample/app/proguard-rules.pro
new file mode 100644
index 0000000..481bb43
--- /dev/null
+++ b/Assignments/mp2_sample/app/proguard-rules.pro
@@ -0,0 +1,21 @@
+# Add project specific ProGuard rules here.
+# You can control the set of applied configuration files using the
+# proguardFiles setting in build.gradle.
+#
+# For more details, see
+# http://developer.android.com/guide/developing/tools/proguard.html
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+# public *;
+#}
+
+# Uncomment this to preserve the line number information for
+# debugging stack traces.
+#-keepattributes SourceFile,LineNumberTable
+
+# If you keep the line number information, uncomment this to
+# hide the original source file name.
+#-renamesourcefileattribute SourceFile
\ No newline at end of file
diff --git a/Assignments/mp2_sample/app/src/androidTest/java/com/example/fragmenttofragmentmap/ExampleInstrumentedTest.java b/Assignments/mp2_sample/app/src/androidTest/java/com/example/fragmenttofragmentmap/ExampleInstrumentedTest.java
new file mode 100644
index 0000000..4032873
--- /dev/null
+++ b/Assignments/mp2_sample/app/src/androidTest/java/com/example/fragmenttofragmentmap/ExampleInstrumentedTest.java
@@ -0,0 +1,28 @@
+package com.example.fragmenttofragmentmap;
+
+import android.content.Context;
+
+import androidx.test.platform.app.InstrumentationRegistry;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import static org.junit.Assert.*;
+
+/**
+ * Instrumented test, which will execute on an Android device.
+ *
+ * @see Testing documentation
+ */
+@RunWith(AndroidJUnit4.class)
+public class ExampleInstrumentedTest
+{
+ @Test
+ public void useAppContext()
+ {
+ // Context of the app under test.
+ Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext();
+ assertEquals("com.example.fragmenttofragmentmap", appContext.getPackageName());
+ }
+}
\ No newline at end of file
diff --git a/Assignments/mp2_sample/app/src/main/AndroidManifest.xml b/Assignments/mp2_sample/app/src/main/AndroidManifest.xml
new file mode 100644
index 0000000..4ea56c1
--- /dev/null
+++ b/Assignments/mp2_sample/app/src/main/AndroidManifest.xml
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Assignments/mp2_sample/app/src/main/java/com/example/fragmenttofragmentmap/A.java b/Assignments/mp2_sample/app/src/main/java/com/example/fragmenttofragmentmap/A.java
new file mode 100644
index 0000000..b502e95
--- /dev/null
+++ b/Assignments/mp2_sample/app/src/main/java/com/example/fragmenttofragmentmap/A.java
@@ -0,0 +1,56 @@
+package com.example.fragmenttofragmentmap;
+
+import androidx.annotation.Nullable;
+import androidx.fragment.app.Fragment;
+
+import android.content.Intent;
+import android.os.Bundle;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.TreeMap;
+
+public class A extends GenericActivityThatCreatesFragments
+{
+ private List contacts;
+
+ @Override
+ protected Fragment createFragment()
+ {
+ contacts = new ArrayList();
+ for ( int i=0; i< 10; ++i)
+ contacts.add( new Contact( "name"+i, "phone"+i+1 ));
+
+
+
+ F1 f1 = new F1();
+ Bundle b = new Bundle();
+ b.putSerializable("ID_MAP_ORIGINAL_FROM_A",(Serializable) this.contacts);
+ f1.setArguments( b );
+ return f1;
+ }
+
+
+
+ @Override
+ protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent i)
+ {
+ super.onActivityResult(requestCode, resultCode, i);
+ if (requestCode == 888)
+ {
+ //the i.getSerializableExtra will convert the TreeMap of the bundle into HashMap
+ //so create from the HashMap a TreeMap
+ List list = ( List ) i.getSerializableExtra("ID_CONTACT_MAP_FROM_F2");
+
+ Bundle b = new Bundle();
+ b.putSerializable("ID_CONTACT_FROM_A", (Serializable) list);
+
+ getGenericFragment().setArguments( b );
+
+ }
+ }
+
+}
diff --git a/Assignments/mp2_sample/app/src/main/java/com/example/fragmenttofragmentmap/B.java b/Assignments/mp2_sample/app/src/main/java/com/example/fragmenttofragmentmap/B.java
new file mode 100644
index 0000000..76b2280
--- /dev/null
+++ b/Assignments/mp2_sample/app/src/main/java/com/example/fragmenttofragmentmap/B.java
@@ -0,0 +1,33 @@
+package com.example.fragmenttofragmentmap;
+
+import android.content.Intent;
+import android.os.Bundle;
+
+import androidx.fragment.app.Fragment;
+
+import java.io.Serializable;
+import java.util.List;
+import java.util.Map;
+
+public class B extends GenericActivityThatCreatesFragments
+{
+List list;
+int index;
+
+ @Override
+ protected Fragment createFragment()
+ {
+ Intent i = getIntent();
+ Bundle b = i.getBundleExtra("ID_F1");
+ list = ( List ) b.getSerializable("LIST_FROM_F1" );
+ index = b.getInt("LIST_INDEX_FROM_F1");
+ F2 f2 = new F2();
+ Bundle b1 = new Bundle();
+ b1.putSerializable("ID_LIST_ORIGINAL_FROM_B",(Serializable) this.list);
+ b1.putSerializable("ID_INDEX_ORIGINAL_FROM_B",(Serializable) this.index);
+
+ f2.setArguments( b1 );
+ return f2;
+ }
+
+}
\ No newline at end of file
diff --git a/Assignments/mp2_sample/app/src/main/java/com/example/fragmenttofragmentmap/Contact.java b/Assignments/mp2_sample/app/src/main/java/com/example/fragmenttofragmentmap/Contact.java
new file mode 100644
index 0000000..3be43a3
--- /dev/null
+++ b/Assignments/mp2_sample/app/src/main/java/com/example/fragmenttofragmentmap/Contact.java
@@ -0,0 +1,38 @@
+package com.example.fragmenttofragmentmap;
+
+import java.io.Serializable;
+import java.util.UUID;
+
+public class Contact implements Serializable
+{
+
+ private UUID id;
+ private String name;
+ private String phone;
+
+ public UUID getId() {
+ return id;
+ }
+
+ public Contact(String name, String phone) {
+ this.id = UUID.randomUUID();
+ this.name = name;
+ this.phone = phone;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getPhone() {
+ return phone;
+ }
+
+ public void setPhone(String phone) {
+ this.phone = phone;
+ }
+}
diff --git a/Assignments/mp2_sample/app/src/main/java/com/example/fragmenttofragmentmap/F1.java b/Assignments/mp2_sample/app/src/main/java/com/example/fragmenttofragmentmap/F1.java
new file mode 100644
index 0000000..c61ee27
--- /dev/null
+++ b/Assignments/mp2_sample/app/src/main/java/com/example/fragmenttofragmentmap/F1.java
@@ -0,0 +1,220 @@
+package com.example.fragmenttofragmentmap;
+
+import android.content.Intent;
+import android.os.Bundle;
+
+import androidx.annotation.NonNull;
+import androidx.fragment.app.Fragment;
+import androidx.recyclerview.widget.LinearLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
+
+import android.util.Log;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.Button;
+import android.widget.TextView;
+
+import java.io.Serializable;
+import java.util.List;
+import java.util.Map;
+
+public class F1 extends Fragment //Resembles the RecycleView
+{
+
+ private RecyclerView crimeRecyclerView;
+ private ContactAdapter adapter;
+
+
+ List contacts;
+
+
+ private void updateUI() {
+
+ if ( this.adapter == null ) {
+ this.adapter = new ContactAdapter(this.contacts);
+ this.crimeRecyclerView.setAdapter(this.adapter);
+ }
+ else
+ this.adapter.notifyDataSetChanged();
+ }
+
+
+ @Override
+ public void onCreate(Bundle savedInstanceState)
+ {
+ super.onCreate(savedInstanceState);
+
+ Bundle b = getArguments();
+ this.contacts = (List) b.getSerializable("ID_MAP_ORIGINAL_FROM_A");
+ }
+ @Override
+ public View onCreateView(
+ LayoutInflater inflater, ViewGroup container,
+ Bundle savedInstanceState)
+ {
+ View view = inflater.inflate(R.layout.fragment_contact_list, container, false);
+
+ crimeRecyclerView = (RecyclerView) view.findViewById(R.id.contact_recycler_view);
+ crimeRecyclerView.setLayoutManager(new LinearLayoutManager(getActivity())); // we pass the crimeListActivity here
+ updateUI();
+ return view;
+
+
+/* View v = inflater.inflate(R.layout.f1, container, false);
+ originalMap = v.findViewById(R.id.textViewMapOriginal);
+ sortedMap = v.findViewById(R.id.textViewMapSorted);
+ sendtoF2 = v.findViewById(R.id.buttonSendToF2);
+
+ originalMap.setText(map.toString());
+
+ originalMap.setOnClickListener(new View.OnClickListener()
+ {
+ @Override
+ public void onClick(View v)
+ {
+ GenericActivityThatCreatesFragments a = (GenericActivityThatCreatesFragments) getActivity();
+ Intent i = new Intent(a, B.class);
+ Bundle b = new Bundle();
+
+ b.putSerializable("MAP_FROM_F1",
+ (Serializable) F1.this.map);
+ i.putExtra("ID_F1", b);
+ Map m = ( Map) b.getSerializable("MAP_FROM_F1");
+ a.startActivityForResult(i, 888);
+ }
+ });
+
+
+
+ this.sendtoF2.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ GenericActivityThatCreatesFragments a = (GenericActivityThatCreatesFragments) getActivity();
+
+ Intent i = new Intent(a, B.class);
+ Bundle b = new Bundle();
+
+ b.putSerializable("MAP_FROM_F1",
+ (Serializable) F1.this.map);
+ i.putExtra("ID_F1", b);
+ Map m = ( Map) b.getSerializable("MAP_FROM_F1");
+ Log.d("THE MAP --------", m.toString());
+ a.startActivityForResult(i, 888);
+
+ }
+ });
+
+ return v;
+
+ */
+
+ }
+
+ @Override
+ public void onResume()
+ {
+ super.onResume();
+ if (getArguments() != null)
+ {
+
+ List l = (List) getArguments().getSerializable(
+ "ID_CONTACT_FROM_A");
+ if ( l != null )
+ {
+ this.contacts = l;
+ this.adapter.contacts = this.contacts;
+ }
+
+ updateUI();
+
+ }
+ }
+
+
+
+
+
+
+
+ private class ContactHolder extends RecyclerView.ViewHolder {
+
+ private Contact contact;
+ private int index;
+ private TextView nameTextView;
+ private TextView phoneTextView;
+ public ContactHolder(LayoutInflater inflater, ViewGroup parent) {
+ super(inflater.inflate( R.layout.f1, parent, false));
+
+ nameTextView = this.itemView.findViewById(R.id.textViewName);
+ phoneTextView = this.itemView.findViewById(R.id.textViewPhone);
+
+ this.itemView.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ /*
+ //Toast.makeText(getActivity(), crime.getTitle() + " clicked!", Toast.LENGTH_SHORT).show();
+
+ Intent intent = new Intent(
+ CrimeListFragment.this.getActivity(),
+ CrimeActivity.class
+ );
+ intent.putExtra("EXTRA_CRIME_ID", crime.getId());
+ startActivity( intent );
+
+*/
+
+ GenericActivityThatCreatesFragments a = (GenericActivityThatCreatesFragments) getActivity();
+
+ Intent i = new Intent(a, B.class);
+ Bundle b = new Bundle();
+
+ b.putSerializable("LIST_FROM_F1", (Serializable) F1.this.contacts);
+ b.putInt("LIST_INDEX_FROM_F1", ContactHolder.this.index);
+ i.putExtra("ID_F1", b);
+
+ a.startActivityForResult(i, 888);
+
+ }
+ });
+ }
+
+ public void bind(Contact contact, int index) { // this method will be called by the adapter
+ this.contact = contact;
+ this.index = index;
+ nameTextView.setText(contact.getName());
+ phoneTextView.setText(contact.getPhone());
+ }
+
+
+ }
+
+
+ private class ContactAdapter extends RecyclerView.Adapter
+ {
+ private List contacts;
+ public ContactAdapter(List contacts) {
+ this.contacts = contacts;
+ }
+
+ @NonNull
+ @Override
+ public ContactHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+ LayoutInflater layoutInflater = LayoutInflater.from(getActivity());
+ return new ContactHolder(layoutInflater, parent);
+ }
+
+ @Override
+ public void onBindViewHolder(@NonNull ContactHolder holder, int position) {
+ Contact crime = this.contacts.get(position);
+ holder.bind(crime,position );
+ }
+
+ @Override
+ public int getItemCount() {
+ return this.contacts.size();
+ }
+ }
+
+
+}
\ No newline at end of file
diff --git a/Assignments/mp2_sample/app/src/main/java/com/example/fragmenttofragmentmap/F2.java b/Assignments/mp2_sample/app/src/main/java/com/example/fragmenttofragmentmap/F2.java
new file mode 100644
index 0000000..22d2f12
--- /dev/null
+++ b/Assignments/mp2_sample/app/src/main/java/com/example/fragmenttofragmentmap/F2.java
@@ -0,0 +1,84 @@
+package com.example.fragmenttofragmentmap;
+
+import android.content.Intent;
+import android.os.Bundle;
+import android.util.Log;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.Button;
+import android.widget.EditText;
+import android.widget.TextView;
+
+import androidx.fragment.app.Fragment;
+
+import java.io.Serializable;
+import java.util.List;
+import java.util.Map;
+import java.util.TreeMap;
+
+public class F2 extends Fragment //Resebles teh RecycleView
+{
+ EditText editTextViewName;
+ EditText editTextViewPhone;
+ Button sendBackToF1;
+
+
+
+
+ List list;
+ int index;
+ public F2()
+ {
+ }
+
+ @Override
+ public void onCreate(Bundle savedInstanceState)
+ {
+ super.onCreate(savedInstanceState);
+
+ Bundle b = getArguments();
+ list = (List) b.getSerializable("ID_LIST_ORIGINAL_FROM_B");
+ index = b.getInt("ID_INDEX_ORIGINAL_FROM_B");
+
+ }
+
+ @Override
+ public View onCreateView(
+ LayoutInflater inflater, ViewGroup container,
+ Bundle savedInstanceState)
+ {
+ View v = inflater.inflate(R.layout.contact, container, false);
+ this.editTextViewName = v.findViewById(R.id.editTextName);
+ this.editTextViewPhone = v.findViewById(R.id.editTextPhone);
+
+ this.editTextViewName.setText(list.get(index).getName());
+ this.editTextViewPhone.setText(list.get(index).getPhone());
+
+ sendBackToF1 = v.findViewById(R.id.buttonDone);
+
+
+
+
+ this.sendBackToF1.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+
+ Intent i = new Intent();
+
+ Contact c = F2.this.list.get(index);
+ c.setName( F2.this.editTextViewName.getText().toString() );
+ c.setPhone( F2.this.editTextViewPhone.getText().toString() );
+ F2.this.list.set(F2.this.index,c );
+ i.putExtra("ID_CONTACT_MAP_FROM_F2", (Serializable) F2.this.list);
+ getActivity().setResult(888, i);
+
+ GenericActivityThatCreatesFragments a = (GenericActivityThatCreatesFragments) getActivity();
+ a.finish();
+
+ }
+ });
+
+ return v;
+ }
+}
\ No newline at end of file
diff --git a/Assignments/mp2_sample/app/src/main/java/com/example/fragmenttofragmentmap/GenericActivityThatCreatesFragments.java b/Assignments/mp2_sample/app/src/main/java/com/example/fragmenttofragmentmap/GenericActivityThatCreatesFragments.java
new file mode 100644
index 0000000..6534247
--- /dev/null
+++ b/Assignments/mp2_sample/app/src/main/java/com/example/fragmenttofragmentmap/GenericActivityThatCreatesFragments.java
@@ -0,0 +1,32 @@
+package com.example.fragmenttofragmentmap;
+
+import android.os.Bundle;
+
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.fragment.app.Fragment;
+import androidx.fragment.app.FragmentManager;
+
+abstract public class
+GenericActivityThatCreatesFragments extends AppCompatActivity
+{
+ Fragment fragment;
+ public Fragment getGenericFragment()
+ {
+ return fragment;
+ };
+ protected abstract Fragment createFragment();
+ @Override
+ protected void onCreate(Bundle savedInstanceState)
+ {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.a);
+ FragmentManager fm = getSupportFragmentManager();
+ this.fragment = fm.findFragmentById(R.id.f1_container);
+ if (this.fragment == null)
+ {
+ this.fragment = createFragment();
+ fm.beginTransaction().add(R.id.f1_container, fragment).commit();
+ }
+ }
+
+}
\ No newline at end of file
diff --git a/Assignments/mp2_sample/app/src/main/res/drawable-v24/ic_launcher_foreground.xml b/Assignments/mp2_sample/app/src/main/res/drawable-v24/ic_launcher_foreground.xml
new file mode 100644
index 0000000..2b068d1
--- /dev/null
+++ b/Assignments/mp2_sample/app/src/main/res/drawable-v24/ic_launcher_foreground.xml
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Assignments/mp2_sample/app/src/main/res/drawable/ic_launcher_background.xml b/Assignments/mp2_sample/app/src/main/res/drawable/ic_launcher_background.xml
new file mode 100644
index 0000000..07d5da9
--- /dev/null
+++ b/Assignments/mp2_sample/app/src/main/res/drawable/ic_launcher_background.xml
@@ -0,0 +1,170 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Assignments/mp2_sample/app/src/main/res/layout/a.xml b/Assignments/mp2_sample/app/src/main/res/layout/a.xml
new file mode 100644
index 0000000..f076f49
--- /dev/null
+++ b/Assignments/mp2_sample/app/src/main/res/layout/a.xml
@@ -0,0 +1,6 @@
+
+
\ No newline at end of file
diff --git a/Assignments/mp2_sample/app/src/main/res/layout/activity_start.xml b/Assignments/mp2_sample/app/src/main/res/layout/activity_start.xml
new file mode 100644
index 0000000..a9f5d83
--- /dev/null
+++ b/Assignments/mp2_sample/app/src/main/res/layout/activity_start.xml
@@ -0,0 +1,6 @@
+
+
\ No newline at end of file
diff --git a/Assignments/mp2_sample/app/src/main/res/layout/contact.xml b/Assignments/mp2_sample/app/src/main/res/layout/contact.xml
new file mode 100644
index 0000000..0c94144
--- /dev/null
+++ b/Assignments/mp2_sample/app/src/main/res/layout/contact.xml
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Assignments/mp2_sample/app/src/main/res/layout/f1.xml b/Assignments/mp2_sample/app/src/main/res/layout/f1.xml
new file mode 100644
index 0000000..10ba504
--- /dev/null
+++ b/Assignments/mp2_sample/app/src/main/res/layout/f1.xml
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Assignments/mp2_sample/app/src/main/res/layout/f2.xml b/Assignments/mp2_sample/app/src/main/res/layout/f2.xml
new file mode 100644
index 0000000..d525620
--- /dev/null
+++ b/Assignments/mp2_sample/app/src/main/res/layout/f2.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Assignments/mp2_sample/app/src/main/res/layout/fragment_contact_list.xml b/Assignments/mp2_sample/app/src/main/res/layout/fragment_contact_list.xml
new file mode 100644
index 0000000..0d1d45c
--- /dev/null
+++ b/Assignments/mp2_sample/app/src/main/res/layout/fragment_contact_list.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/Assignments/mp2_sample/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/Assignments/mp2_sample/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
new file mode 100644
index 0000000..eca70cf
--- /dev/null
+++ b/Assignments/mp2_sample/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/Assignments/mp2_sample/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/Assignments/mp2_sample/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
new file mode 100644
index 0000000..eca70cf
--- /dev/null
+++ b/Assignments/mp2_sample/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/Assignments/mp2_sample/app/src/main/res/mipmap-hdpi/ic_launcher.webp b/Assignments/mp2_sample/app/src/main/res/mipmap-hdpi/ic_launcher.webp
new file mode 100644
index 0000000..c209e78
Binary files /dev/null and b/Assignments/mp2_sample/app/src/main/res/mipmap-hdpi/ic_launcher.webp differ
diff --git a/Assignments/mp2_sample/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp b/Assignments/mp2_sample/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp
new file mode 100644
index 0000000..b2dfe3d
Binary files /dev/null and b/Assignments/mp2_sample/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp differ
diff --git a/Assignments/mp2_sample/app/src/main/res/mipmap-mdpi/ic_launcher.webp b/Assignments/mp2_sample/app/src/main/res/mipmap-mdpi/ic_launcher.webp
new file mode 100644
index 0000000..4f0f1d6
Binary files /dev/null and b/Assignments/mp2_sample/app/src/main/res/mipmap-mdpi/ic_launcher.webp differ
diff --git a/Assignments/mp2_sample/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp b/Assignments/mp2_sample/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp
new file mode 100644
index 0000000..62b611d
Binary files /dev/null and b/Assignments/mp2_sample/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp differ
diff --git a/Assignments/mp2_sample/app/src/main/res/mipmap-xhdpi/ic_launcher.webp b/Assignments/mp2_sample/app/src/main/res/mipmap-xhdpi/ic_launcher.webp
new file mode 100644
index 0000000..948a307
Binary files /dev/null and b/Assignments/mp2_sample/app/src/main/res/mipmap-xhdpi/ic_launcher.webp differ
diff --git a/Assignments/mp2_sample/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp b/Assignments/mp2_sample/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp
new file mode 100644
index 0000000..1b9a695
Binary files /dev/null and b/Assignments/mp2_sample/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp differ
diff --git a/Assignments/mp2_sample/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp b/Assignments/mp2_sample/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp
new file mode 100644
index 0000000..28d4b77
Binary files /dev/null and b/Assignments/mp2_sample/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp differ
diff --git a/Assignments/mp2_sample/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp b/Assignments/mp2_sample/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp
new file mode 100644
index 0000000..9287f50
Binary files /dev/null and b/Assignments/mp2_sample/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp differ
diff --git a/Assignments/mp2_sample/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp b/Assignments/mp2_sample/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp
new file mode 100644
index 0000000..aa7d642
Binary files /dev/null and b/Assignments/mp2_sample/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp differ
diff --git a/Assignments/mp2_sample/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp b/Assignments/mp2_sample/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp
new file mode 100644
index 0000000..9126ae3
Binary files /dev/null and b/Assignments/mp2_sample/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp differ
diff --git a/Assignments/mp2_sample/app/src/main/res/values-night/themes.xml b/Assignments/mp2_sample/app/src/main/res/values-night/themes.xml
new file mode 100644
index 0000000..fc2ddc4
--- /dev/null
+++ b/Assignments/mp2_sample/app/src/main/res/values-night/themes.xml
@@ -0,0 +1,16 @@
+
+
+
+
\ No newline at end of file
diff --git a/Assignments/mp2_sample/app/src/main/res/values/colors.xml b/Assignments/mp2_sample/app/src/main/res/values/colors.xml
new file mode 100644
index 0000000..f8c6127
--- /dev/null
+++ b/Assignments/mp2_sample/app/src/main/res/values/colors.xml
@@ -0,0 +1,10 @@
+
+
+ #FFBB86FC
+ #FF6200EE
+ #FF3700B3
+ #FF03DAC5
+ #FF018786
+ #FF000000
+ #FFFFFFFF
+
\ No newline at end of file
diff --git a/Assignments/mp2_sample/app/src/main/res/values/strings.xml b/Assignments/mp2_sample/app/src/main/res/values/strings.xml
new file mode 100644
index 0000000..29054a4
--- /dev/null
+++ b/Assignments/mp2_sample/app/src/main/res/values/strings.xml
@@ -0,0 +1,5 @@
+
+ FragmentToFragmentMap
+
+ Hello blank fragment
+
\ No newline at end of file
diff --git a/Assignments/mp2_sample/app/src/main/res/values/themes.xml b/Assignments/mp2_sample/app/src/main/res/values/themes.xml
new file mode 100644
index 0000000..dfc7100
--- /dev/null
+++ b/Assignments/mp2_sample/app/src/main/res/values/themes.xml
@@ -0,0 +1,16 @@
+
+
+
+
\ No newline at end of file
diff --git a/Assignments/mp2_sample/app/src/main/res/xml/backup_rules.xml b/Assignments/mp2_sample/app/src/main/res/xml/backup_rules.xml
new file mode 100644
index 0000000..fa0f996
--- /dev/null
+++ b/Assignments/mp2_sample/app/src/main/res/xml/backup_rules.xml
@@ -0,0 +1,13 @@
+
+
+
+
\ No newline at end of file
diff --git a/Assignments/mp2_sample/app/src/main/res/xml/data_extraction_rules.xml b/Assignments/mp2_sample/app/src/main/res/xml/data_extraction_rules.xml
new file mode 100644
index 0000000..9ee9997
--- /dev/null
+++ b/Assignments/mp2_sample/app/src/main/res/xml/data_extraction_rules.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Assignments/mp2_sample/app/src/test/java/com/example/fragmenttofragmentmap/ExampleUnitTest.java b/Assignments/mp2_sample/app/src/test/java/com/example/fragmenttofragmentmap/ExampleUnitTest.java
new file mode 100644
index 0000000..69f517c
--- /dev/null
+++ b/Assignments/mp2_sample/app/src/test/java/com/example/fragmenttofragmentmap/ExampleUnitTest.java
@@ -0,0 +1,19 @@
+package com.example.fragmenttofragmentmap;
+
+import org.junit.Test;
+
+import static org.junit.Assert.*;
+
+/**
+ * Example local unit test, which will execute on the development machine (host).
+ *
+ * @see Testing documentation
+ */
+public class ExampleUnitTest
+{
+ @Test
+ public void addition_isCorrect()
+ {
+ assertEquals(4, 2 + 2);
+ }
+}
\ No newline at end of file
diff --git a/Assignments/mp2_sample/build.gradle b/Assignments/mp2_sample/build.gradle
new file mode 100644
index 0000000..71b99f4
--- /dev/null
+++ b/Assignments/mp2_sample/build.gradle
@@ -0,0 +1,5 @@
+// Top-level build file where you can add configuration options common to all sub-projects/modules.
+plugins {
+ id 'com.android.application' version '7.3.1' apply false
+ id 'com.android.library' version '7.3.1' apply false
+}
\ No newline at end of file
diff --git a/Assignments/mp2_sample/gradle.properties b/Assignments/mp2_sample/gradle.properties
new file mode 100644
index 0000000..3e927b1
--- /dev/null
+++ b/Assignments/mp2_sample/gradle.properties
@@ -0,0 +1,21 @@
+# Project-wide Gradle settings.
+# IDE (e.g. Android Studio) users:
+# Gradle settings configured through the IDE *will override*
+# any settings specified in this file.
+# For more details on how to configure your build environment visit
+# http://www.gradle.org/docs/current/userguide/build_environment.html
+# Specifies the JVM arguments used for the daemon process.
+# The setting is particularly useful for tweaking memory settings.
+org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8
+# When configured, Gradle will run in incubating parallel mode.
+# This option should only be used with decoupled projects. More details, visit
+# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
+# org.gradle.parallel=true
+# AndroidX package structure to make it clearer which packages are bundled with the
+# Android operating system, and which are packaged with your app's APK
+# https://developer.android.com/topic/libraries/support-library/androidx-rn
+android.useAndroidX=true
+# Enables namespacing of each library's R class so that its R class includes only the
+# resources declared in the library itself and none from the library's dependencies,
+# thereby reducing the size of the R class for that library
+android.nonTransitiveRClass=true
\ No newline at end of file
diff --git a/Assignments/mp2_sample/gradle/wrapper/gradle-wrapper.jar b/Assignments/mp2_sample/gradle/wrapper/gradle-wrapper.jar
new file mode 100644
index 0000000..e708b1c
Binary files /dev/null and b/Assignments/mp2_sample/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/Assignments/mp2_sample/gradle/wrapper/gradle-wrapper.properties b/Assignments/mp2_sample/gradle/wrapper/gradle-wrapper.properties
new file mode 100644
index 0000000..04c1098
--- /dev/null
+++ b/Assignments/mp2_sample/gradle/wrapper/gradle-wrapper.properties
@@ -0,0 +1,6 @@
+#Wed Mar 15 11:05:12 CDT 2023
+distributionBase=GRADLE_USER_HOME
+distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-bin.zip
+distributionPath=wrapper/dists
+zipStorePath=wrapper/dists
+zipStoreBase=GRADLE_USER_HOME
diff --git a/Assignments/mp2_sample/gradlew b/Assignments/mp2_sample/gradlew
new file mode 100644
index 0000000..4f906e0
--- /dev/null
+++ b/Assignments/mp2_sample/gradlew
@@ -0,0 +1,185 @@
+#!/usr/bin/env sh
+
+#
+# Copyright 2015 the original author or authors.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+##############################################################################
+##
+## Gradle start up script for UN*X
+##
+##############################################################################
+
+# Attempt to set APP_HOME
+# Resolve links: $0 may be a link
+PRG="$0"
+# Need this for relative symlinks.
+while [ -h "$PRG" ] ; do
+ ls=`ls -ld "$PRG"`
+ link=`expr "$ls" : '.*-> \(.*\)$'`
+ if expr "$link" : '/.*' > /dev/null; then
+ PRG="$link"
+ else
+ PRG=`dirname "$PRG"`"/$link"
+ fi
+done
+SAVED="`pwd`"
+cd "`dirname \"$PRG\"`/" >/dev/null
+APP_HOME="`pwd -P`"
+cd "$SAVED" >/dev/null
+
+APP_NAME="Gradle"
+APP_BASE_NAME=`basename "$0"`
+
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
+
+# Use the maximum available, or set MAX_FD != -1 to use that value.
+MAX_FD="maximum"
+
+warn () {
+ echo "$*"
+}
+
+die () {
+ echo
+ echo "$*"
+ echo
+ exit 1
+}
+
+# OS specific support (must be 'true' or 'false').
+cygwin=false
+msys=false
+darwin=false
+nonstop=false
+case "`uname`" in
+ CYGWIN* )
+ cygwin=true
+ ;;
+ Darwin* )
+ darwin=true
+ ;;
+ MINGW* )
+ msys=true
+ ;;
+ NONSTOP* )
+ nonstop=true
+ ;;
+esac
+
+CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
+
+
+# Determine the Java command to use to start the JVM.
+if [ -n "$JAVA_HOME" ] ; then
+ if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+ # IBM's JDK on AIX uses strange locations for the executables
+ JAVACMD="$JAVA_HOME/jre/sh/java"
+ else
+ JAVACMD="$JAVA_HOME/bin/java"
+ fi
+ if [ ! -x "$JAVACMD" ] ; then
+ die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+ fi
+else
+ JAVACMD="java"
+ which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+fi
+
+# Increase the maximum file descriptors if we can.
+if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
+ MAX_FD_LIMIT=`ulimit -H -n`
+ if [ $? -eq 0 ] ; then
+ if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
+ MAX_FD="$MAX_FD_LIMIT"
+ fi
+ ulimit -n $MAX_FD
+ if [ $? -ne 0 ] ; then
+ warn "Could not set maximum file descriptor limit: $MAX_FD"
+ fi
+ else
+ warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
+ fi
+fi
+
+# For Darwin, add options to specify how the application appears in the dock
+if $darwin; then
+ GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
+fi
+
+# For Cygwin or MSYS, switch paths to Windows format before running java
+if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then
+ APP_HOME=`cygpath --path --mixed "$APP_HOME"`
+ CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
+
+ JAVACMD=`cygpath --unix "$JAVACMD"`
+
+ # We build the pattern for arguments to be converted via cygpath
+ ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
+ SEP=""
+ for dir in $ROOTDIRSRAW ; do
+ ROOTDIRS="$ROOTDIRS$SEP$dir"
+ SEP="|"
+ done
+ OURCYGPATTERN="(^($ROOTDIRS))"
+ # Add a user-defined pattern to the cygpath arguments
+ if [ "$GRADLE_CYGPATTERN" != "" ] ; then
+ OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
+ fi
+ # Now convert the arguments - kludge to limit ourselves to /bin/sh
+ i=0
+ for arg in "$@" ; do
+ CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
+ CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
+
+ if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
+ eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
+ else
+ eval `echo args$i`="\"$arg\""
+ fi
+ i=`expr $i + 1`
+ done
+ case $i in
+ 0) set -- ;;
+ 1) set -- "$args0" ;;
+ 2) set -- "$args0" "$args1" ;;
+ 3) set -- "$args0" "$args1" "$args2" ;;
+ 4) set -- "$args0" "$args1" "$args2" "$args3" ;;
+ 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
+ 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
+ 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
+ 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
+ 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
+ esac
+fi
+
+# Escape application args
+save () {
+ for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
+ echo " "
+}
+APP_ARGS=`save "$@"`
+
+# Collect all arguments for the java command, following the shell quoting and substitution rules
+eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
+
+exec "$JAVACMD" "$@"
diff --git a/Assignments/mp2_sample/gradlew.bat b/Assignments/mp2_sample/gradlew.bat
new file mode 100644
index 0000000..ac1b06f
--- /dev/null
+++ b/Assignments/mp2_sample/gradlew.bat
@@ -0,0 +1,89 @@
+@rem
+@rem Copyright 2015 the original author or authors.
+@rem
+@rem Licensed under the Apache License, Version 2.0 (the "License");
+@rem you may not use this file except in compliance with the License.
+@rem You may obtain a copy of the License at
+@rem
+@rem https://www.apache.org/licenses/LICENSE-2.0
+@rem
+@rem Unless required by applicable law or agreed to in writing, software
+@rem distributed under the License is distributed on an "AS IS" BASIS,
+@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+@rem See the License for the specific language governing permissions and
+@rem limitations under the License.
+@rem
+
+@if "%DEBUG%" == "" @echo off
+@rem ##########################################################################
+@rem
+@rem Gradle startup script for Windows
+@rem
+@rem ##########################################################################
+
+@rem Set local scope for the variables with windows NT shell
+if "%OS%"=="Windows_NT" setlocal
+
+set DIRNAME=%~dp0
+if "%DIRNAME%" == "" set DIRNAME=.
+set APP_BASE_NAME=%~n0
+set APP_HOME=%DIRNAME%
+
+@rem Resolve any "." and ".." in APP_HOME to make it shorter.
+for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
+
+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
+
+@rem Find java.exe
+if defined JAVA_HOME goto findJavaFromJavaHome
+
+set JAVA_EXE=java.exe
+%JAVA_EXE% -version >NUL 2>&1
+if "%ERRORLEVEL%" == "0" goto execute
+
+echo.
+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:findJavaFromJavaHome
+set JAVA_HOME=%JAVA_HOME:"=%
+set JAVA_EXE=%JAVA_HOME%/bin/java.exe
+
+if exist "%JAVA_EXE%" goto execute
+
+echo.
+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:execute
+@rem Setup the command line
+
+set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
+
+
+@rem Execute Gradle
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
+
+:end
+@rem End local scope for the variables with windows NT shell
+if "%ERRORLEVEL%"=="0" goto mainEnd
+
+:fail
+rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
+rem the _cmd.exe /c_ return code!
+if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
+exit /b 1
+
+:mainEnd
+if "%OS%"=="Windows_NT" endlocal
+
+:omega
diff --git a/Assignments/mp2_sample/settings.gradle b/Assignments/mp2_sample/settings.gradle
new file mode 100644
index 0000000..30d9c7c
--- /dev/null
+++ b/Assignments/mp2_sample/settings.gradle
@@ -0,0 +1,16 @@
+pluginManagement {
+ repositories {
+ gradlePluginPortal()
+ google()
+ mavenCentral()
+ }
+}
+dependencyResolutionManagement {
+ repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
+ repositories {
+ google()
+ mavenCentral()
+ }
+}
+rootProject.name = "FragmentToFragmentMap"
+include ':app'
diff --git a/Assignments/recycler_click/.gitignore b/Assignments/recycler_click/.gitignore
new file mode 100644
index 0000000..aa724b7
--- /dev/null
+++ b/Assignments/recycler_click/.gitignore
@@ -0,0 +1,15 @@
+*.iml
+.gradle
+/local.properties
+/.idea/caches
+/.idea/libraries
+/.idea/modules.xml
+/.idea/workspace.xml
+/.idea/navEditor.xml
+/.idea/assetWizardSettings.xml
+.DS_Store
+/build
+/captures
+.externalNativeBuild
+.cxx
+local.properties
diff --git a/Assignments/recycler_click/app/.gitignore b/Assignments/recycler_click/app/.gitignore
new file mode 100644
index 0000000..42afabf
--- /dev/null
+++ b/Assignments/recycler_click/app/.gitignore
@@ -0,0 +1 @@
+/build
\ No newline at end of file
diff --git a/Assignments/recycler_click/app/build.gradle b/Assignments/recycler_click/app/build.gradle
new file mode 100644
index 0000000..f682a27
--- /dev/null
+++ b/Assignments/recycler_click/app/build.gradle
@@ -0,0 +1,39 @@
+plugins {
+ id 'com.android.application'
+}
+
+android {
+ namespace 'com.example.fragmenttofragmentmap'
+ compileSdk 33
+
+ defaultConfig {
+ applicationId "com.example.fragmenttofragmentmap"
+ minSdk 21
+ targetSdk 33
+ versionCode 1
+ versionName "1.0"
+
+ testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
+ }
+
+ buildTypes {
+ release {
+ minifyEnabled false
+ proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
+ }
+ }
+ compileOptions {
+ sourceCompatibility JavaVersion.VERSION_1_8
+ targetCompatibility JavaVersion.VERSION_1_8
+ }
+}
+
+dependencies {
+
+ implementation 'androidx.appcompat:appcompat:1.6.1'
+ implementation 'com.google.android.material:material:1.8.0'
+ implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
+ testImplementation 'junit:junit:4.13.2'
+ androidTestImplementation 'androidx.test.ext:junit:1.1.5'
+ androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1'
+}
\ No newline at end of file
diff --git a/Assignments/recycler_click/app/proguard-rules.pro b/Assignments/recycler_click/app/proguard-rules.pro
new file mode 100644
index 0000000..481bb43
--- /dev/null
+++ b/Assignments/recycler_click/app/proguard-rules.pro
@@ -0,0 +1,21 @@
+# Add project specific ProGuard rules here.
+# You can control the set of applied configuration files using the
+# proguardFiles setting in build.gradle.
+#
+# For more details, see
+# http://developer.android.com/guide/developing/tools/proguard.html
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+# public *;
+#}
+
+# Uncomment this to preserve the line number information for
+# debugging stack traces.
+#-keepattributes SourceFile,LineNumberTable
+
+# If you keep the line number information, uncomment this to
+# hide the original source file name.
+#-renamesourcefileattribute SourceFile
\ No newline at end of file
diff --git a/Assignments/recycler_click/app/src/androidTest/java/com/example/fragmenttofragmentmap/ExampleInstrumentedTest.java b/Assignments/recycler_click/app/src/androidTest/java/com/example/fragmenttofragmentmap/ExampleInstrumentedTest.java
new file mode 100644
index 0000000..4032873
--- /dev/null
+++ b/Assignments/recycler_click/app/src/androidTest/java/com/example/fragmenttofragmentmap/ExampleInstrumentedTest.java
@@ -0,0 +1,28 @@
+package com.example.fragmenttofragmentmap;
+
+import android.content.Context;
+
+import androidx.test.platform.app.InstrumentationRegistry;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import static org.junit.Assert.*;
+
+/**
+ * Instrumented test, which will execute on an Android device.
+ *
+ * @see Testing documentation
+ */
+@RunWith(AndroidJUnit4.class)
+public class ExampleInstrumentedTest
+{
+ @Test
+ public void useAppContext()
+ {
+ // Context of the app under test.
+ Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext();
+ assertEquals("com.example.fragmenttofragmentmap", appContext.getPackageName());
+ }
+}
\ No newline at end of file
diff --git a/Assignments/recycler_click/app/src/main/AndroidManifest.xml b/Assignments/recycler_click/app/src/main/AndroidManifest.xml
new file mode 100644
index 0000000..4ea56c1
--- /dev/null
+++ b/Assignments/recycler_click/app/src/main/AndroidManifest.xml
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Assignments/recycler_click/app/src/main/java/com/example/fragmenttofragmentmap/A.java b/Assignments/recycler_click/app/src/main/java/com/example/fragmenttofragmentmap/A.java
new file mode 100644
index 0000000..68df61b
--- /dev/null
+++ b/Assignments/recycler_click/app/src/main/java/com/example/fragmenttofragmentmap/A.java
@@ -0,0 +1,26 @@
+package com.example.fragmenttofragmentmap;
+
+import androidx.annotation.Nullable;
+import androidx.fragment.app.Fragment;
+
+import android.content.Intent;
+import android.os.Bundle;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.TreeMap;
+
+public class A extends GenericActivityThatCreatesFragments
+{
+
+ @Override
+ protected Fragment createFragment()
+ {
+ F1 f1 = new F1();
+ return f1;
+ }
+
+}
diff --git a/Assignments/recycler_click/app/src/main/java/com/example/fragmenttofragmentmap/F1.java b/Assignments/recycler_click/app/src/main/java/com/example/fragmenttofragmentmap/F1.java
new file mode 100644
index 0000000..d33bdd3
--- /dev/null
+++ b/Assignments/recycler_click/app/src/main/java/com/example/fragmenttofragmentmap/F1.java
@@ -0,0 +1,104 @@
+package com.example.fragmenttofragmentmap;
+
+import android.os.Bundle;
+
+import androidx.annotation.NonNull;
+import androidx.fragment.app.Fragment;
+import androidx.recyclerview.widget.LinearLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
+
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.TextView;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.UUID;
+
+public class F1 extends Fragment //Resembles the RecycleView
+{
+
+ private RecyclerView idsRecyclerView;
+ private UUIDAdapter adapter;
+ List ids;
+
+ private void updateUI()
+ {
+
+ if ( this.adapter == null ) {
+ this.adapter = new UUIDAdapter(this.ids);
+ this.idsRecyclerView.setAdapter(this.adapter);
+ }
+ else
+ this.adapter.notifyDataSetChanged();
+ }
+ @Override
+ public void onCreate(Bundle savedInstanceState)
+ {
+ super.onCreate(savedInstanceState);
+
+ this.ids = new ArrayList<>();
+ ids.add(UUID.randomUUID());
+ ids.add(UUID.randomUUID());
+ }
+ @Override
+ public View onCreateView(
+ LayoutInflater inflater, ViewGroup container,
+ Bundle savedInstanceState)
+ {
+ View view = inflater.inflate( R.layout.recycler_view, container, false);
+ idsRecyclerView = (RecyclerView) view.findViewById(R.id.uuid_recycler_view);
+ idsRecyclerView.setLayoutManager(new LinearLayoutManager(getActivity())); // we pass the crimeListActivity here
+ updateUI();
+ return view;
+ }
+ private class UUIDHolder extends RecyclerView.ViewHolder {
+
+ private UUID id;
+ private TextView idTextView;
+
+ public UUIDHolder(LayoutInflater inflater, ViewGroup parent) {
+ super(inflater.inflate( R.layout.holder, parent, false));
+ idTextView = this.itemView.findViewById(R.id.textViewUUID);
+ this.itemView.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view)
+ {
+ F1.this.ids.add( UUID.randomUUID());
+ updateUI();
+ }
+ });
+ }
+
+ public void bind(UUID id) { // this method will be called by the adapter
+ this.id = id;
+ this.idTextView.setText(id.toString());
+ }
+ }
+ private class UUIDAdapter extends RecyclerView.Adapter
+ {
+ private List ids;
+ public UUIDAdapter(List ids) {
+ this.ids = ids;
+ }
+
+ @NonNull
+ @Override
+ public UUIDHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+ LayoutInflater layoutInflater = LayoutInflater.from(getActivity());
+ return new UUIDHolder(layoutInflater, parent);
+ }
+
+ @Override
+ public void onBindViewHolder(@NonNull UUIDHolder holder, int position) {
+ UUID id = this.ids.get(position);
+ holder.bind( id );
+ }
+
+ @Override
+ public int getItemCount() {
+ return this.ids.size();
+ }
+ }
+}
\ No newline at end of file
diff --git a/Assignments/recycler_click/app/src/main/java/com/example/fragmenttofragmentmap/GenericActivityThatCreatesFragments.java b/Assignments/recycler_click/app/src/main/java/com/example/fragmenttofragmentmap/GenericActivityThatCreatesFragments.java
new file mode 100644
index 0000000..6534247
--- /dev/null
+++ b/Assignments/recycler_click/app/src/main/java/com/example/fragmenttofragmentmap/GenericActivityThatCreatesFragments.java
@@ -0,0 +1,32 @@
+package com.example.fragmenttofragmentmap;
+
+import android.os.Bundle;
+
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.fragment.app.Fragment;
+import androidx.fragment.app.FragmentManager;
+
+abstract public class
+GenericActivityThatCreatesFragments extends AppCompatActivity
+{
+ Fragment fragment;
+ public Fragment getGenericFragment()
+ {
+ return fragment;
+ };
+ protected abstract Fragment createFragment();
+ @Override
+ protected void onCreate(Bundle savedInstanceState)
+ {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.a);
+ FragmentManager fm = getSupportFragmentManager();
+ this.fragment = fm.findFragmentById(R.id.f1_container);
+ if (this.fragment == null)
+ {
+ this.fragment = createFragment();
+ fm.beginTransaction().add(R.id.f1_container, fragment).commit();
+ }
+ }
+
+}
\ No newline at end of file
diff --git a/Assignments/recycler_click/app/src/main/res/drawable-v24/ic_launcher_foreground.xml b/Assignments/recycler_click/app/src/main/res/drawable-v24/ic_launcher_foreground.xml
new file mode 100644
index 0000000..2b068d1
--- /dev/null
+++ b/Assignments/recycler_click/app/src/main/res/drawable-v24/ic_launcher_foreground.xml
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Assignments/recycler_click/app/src/main/res/drawable/ic_launcher_background.xml b/Assignments/recycler_click/app/src/main/res/drawable/ic_launcher_background.xml
new file mode 100644
index 0000000..07d5da9
--- /dev/null
+++ b/Assignments/recycler_click/app/src/main/res/drawable/ic_launcher_background.xml
@@ -0,0 +1,170 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Assignments/recycler_click/app/src/main/res/layout/a.xml b/Assignments/recycler_click/app/src/main/res/layout/a.xml
new file mode 100644
index 0000000..f076f49
--- /dev/null
+++ b/Assignments/recycler_click/app/src/main/res/layout/a.xml
@@ -0,0 +1,6 @@
+
+
\ No newline at end of file
diff --git a/Assignments/recycler_click/app/src/main/res/layout/holder.xml b/Assignments/recycler_click/app/src/main/res/layout/holder.xml
new file mode 100644
index 0000000..f08be40
--- /dev/null
+++ b/Assignments/recycler_click/app/src/main/res/layout/holder.xml
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Assignments/recycler_click/app/src/main/res/layout/recycler_view.xml b/Assignments/recycler_click/app/src/main/res/layout/recycler_view.xml
new file mode 100644
index 0000000..4bb084d
--- /dev/null
+++ b/Assignments/recycler_click/app/src/main/res/layout/recycler_view.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/Assignments/recycler_click/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/Assignments/recycler_click/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
new file mode 100644
index 0000000..eca70cf
--- /dev/null
+++ b/Assignments/recycler_click/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/Assignments/recycler_click/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/Assignments/recycler_click/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
new file mode 100644
index 0000000..eca70cf
--- /dev/null
+++ b/Assignments/recycler_click/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/Assignments/recycler_click/app/src/main/res/mipmap-hdpi/ic_launcher.webp b/Assignments/recycler_click/app/src/main/res/mipmap-hdpi/ic_launcher.webp
new file mode 100644
index 0000000..c209e78
Binary files /dev/null and b/Assignments/recycler_click/app/src/main/res/mipmap-hdpi/ic_launcher.webp differ
diff --git a/Assignments/recycler_click/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp b/Assignments/recycler_click/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp
new file mode 100644
index 0000000..b2dfe3d
Binary files /dev/null and b/Assignments/recycler_click/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp differ
diff --git a/Assignments/recycler_click/app/src/main/res/mipmap-mdpi/ic_launcher.webp b/Assignments/recycler_click/app/src/main/res/mipmap-mdpi/ic_launcher.webp
new file mode 100644
index 0000000..4f0f1d6
Binary files /dev/null and b/Assignments/recycler_click/app/src/main/res/mipmap-mdpi/ic_launcher.webp differ
diff --git a/Assignments/recycler_click/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp b/Assignments/recycler_click/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp
new file mode 100644
index 0000000..62b611d
Binary files /dev/null and b/Assignments/recycler_click/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp differ
diff --git a/Assignments/recycler_click/app/src/main/res/mipmap-xhdpi/ic_launcher.webp b/Assignments/recycler_click/app/src/main/res/mipmap-xhdpi/ic_launcher.webp
new file mode 100644
index 0000000..948a307
Binary files /dev/null and b/Assignments/recycler_click/app/src/main/res/mipmap-xhdpi/ic_launcher.webp differ
diff --git a/Assignments/recycler_click/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp b/Assignments/recycler_click/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp
new file mode 100644
index 0000000..1b9a695
Binary files /dev/null and b/Assignments/recycler_click/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp differ
diff --git a/Assignments/recycler_click/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp b/Assignments/recycler_click/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp
new file mode 100644
index 0000000..28d4b77
Binary files /dev/null and b/Assignments/recycler_click/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp differ
diff --git a/Assignments/recycler_click/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp b/Assignments/recycler_click/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp
new file mode 100644
index 0000000..9287f50
Binary files /dev/null and b/Assignments/recycler_click/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp differ
diff --git a/Assignments/recycler_click/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp b/Assignments/recycler_click/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp
new file mode 100644
index 0000000..aa7d642
Binary files /dev/null and b/Assignments/recycler_click/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp differ
diff --git a/Assignments/recycler_click/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp b/Assignments/recycler_click/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp
new file mode 100644
index 0000000..9126ae3
Binary files /dev/null and b/Assignments/recycler_click/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp differ
diff --git a/Assignments/recycler_click/app/src/main/res/values-night/themes.xml b/Assignments/recycler_click/app/src/main/res/values-night/themes.xml
new file mode 100644
index 0000000..fc2ddc4
--- /dev/null
+++ b/Assignments/recycler_click/app/src/main/res/values-night/themes.xml
@@ -0,0 +1,16 @@
+
+
+
+
\ No newline at end of file
diff --git a/Assignments/recycler_click/app/src/main/res/values/colors.xml b/Assignments/recycler_click/app/src/main/res/values/colors.xml
new file mode 100644
index 0000000..f8c6127
--- /dev/null
+++ b/Assignments/recycler_click/app/src/main/res/values/colors.xml
@@ -0,0 +1,10 @@
+
+
+ #FFBB86FC
+ #FF6200EE
+ #FF3700B3
+ #FF03DAC5
+ #FF018786
+ #FF000000
+ #FFFFFFFF
+
\ No newline at end of file
diff --git a/Assignments/recycler_click/app/src/main/res/values/strings.xml b/Assignments/recycler_click/app/src/main/res/values/strings.xml
new file mode 100644
index 0000000..d4eac78
--- /dev/null
+++ b/Assignments/recycler_click/app/src/main/res/values/strings.xml
@@ -0,0 +1,5 @@
+
+ Click Recycler View
+
+ Hello blank fragment
+
\ No newline at end of file
diff --git a/Assignments/recycler_click/app/src/main/res/values/themes.xml b/Assignments/recycler_click/app/src/main/res/values/themes.xml
new file mode 100644
index 0000000..dfc7100
--- /dev/null
+++ b/Assignments/recycler_click/app/src/main/res/values/themes.xml
@@ -0,0 +1,16 @@
+
+
+
+
\ No newline at end of file
diff --git a/Assignments/recycler_click/app/src/main/res/xml/backup_rules.xml b/Assignments/recycler_click/app/src/main/res/xml/backup_rules.xml
new file mode 100644
index 0000000..fa0f996
--- /dev/null
+++ b/Assignments/recycler_click/app/src/main/res/xml/backup_rules.xml
@@ -0,0 +1,13 @@
+
+
+
+
\ No newline at end of file
diff --git a/Assignments/recycler_click/app/src/main/res/xml/data_extraction_rules.xml b/Assignments/recycler_click/app/src/main/res/xml/data_extraction_rules.xml
new file mode 100644
index 0000000..9ee9997
--- /dev/null
+++ b/Assignments/recycler_click/app/src/main/res/xml/data_extraction_rules.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Assignments/recycler_click/app/src/test/java/com/example/fragmenttofragmentmap/ExampleUnitTest.java b/Assignments/recycler_click/app/src/test/java/com/example/fragmenttofragmentmap/ExampleUnitTest.java
new file mode 100644
index 0000000..69f517c
--- /dev/null
+++ b/Assignments/recycler_click/app/src/test/java/com/example/fragmenttofragmentmap/ExampleUnitTest.java
@@ -0,0 +1,19 @@
+package com.example.fragmenttofragmentmap;
+
+import org.junit.Test;
+
+import static org.junit.Assert.*;
+
+/**
+ * Example local unit test, which will execute on the development machine (host).
+ *
+ * @see Testing documentation
+ */
+public class ExampleUnitTest
+{
+ @Test
+ public void addition_isCorrect()
+ {
+ assertEquals(4, 2 + 2);
+ }
+}
\ No newline at end of file
diff --git a/Assignments/recycler_click/build.gradle b/Assignments/recycler_click/build.gradle
new file mode 100644
index 0000000..f05eacf
--- /dev/null
+++ b/Assignments/recycler_click/build.gradle
@@ -0,0 +1,5 @@
+// Top-level build file where you can add configuration options common to all sub-projects/modules.
+plugins {
+ id 'com.android.application' version '7.4.2' apply false
+ id 'com.android.library' version '7.4.2' apply false
+}
\ No newline at end of file
diff --git a/Assignments/recycler_click/gradle.properties b/Assignments/recycler_click/gradle.properties
new file mode 100644
index 0000000..3e927b1
--- /dev/null
+++ b/Assignments/recycler_click/gradle.properties
@@ -0,0 +1,21 @@
+# Project-wide Gradle settings.
+# IDE (e.g. Android Studio) users:
+# Gradle settings configured through the IDE *will override*
+# any settings specified in this file.
+# For more details on how to configure your build environment visit
+# http://www.gradle.org/docs/current/userguide/build_environment.html
+# Specifies the JVM arguments used for the daemon process.
+# The setting is particularly useful for tweaking memory settings.
+org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8
+# When configured, Gradle will run in incubating parallel mode.
+# This option should only be used with decoupled projects. More details, visit
+# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
+# org.gradle.parallel=true
+# AndroidX package structure to make it clearer which packages are bundled with the
+# Android operating system, and which are packaged with your app's APK
+# https://developer.android.com/topic/libraries/support-library/androidx-rn
+android.useAndroidX=true
+# Enables namespacing of each library's R class so that its R class includes only the
+# resources declared in the library itself and none from the library's dependencies,
+# thereby reducing the size of the R class for that library
+android.nonTransitiveRClass=true
\ No newline at end of file
diff --git a/Assignments/recycler_click/gradle/wrapper/gradle-wrapper.jar b/Assignments/recycler_click/gradle/wrapper/gradle-wrapper.jar
new file mode 100644
index 0000000..e708b1c
Binary files /dev/null and b/Assignments/recycler_click/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/Assignments/recycler_click/gradle/wrapper/gradle-wrapper.properties b/Assignments/recycler_click/gradle/wrapper/gradle-wrapper.properties
new file mode 100644
index 0000000..9d6d82b
--- /dev/null
+++ b/Assignments/recycler_click/gradle/wrapper/gradle-wrapper.properties
@@ -0,0 +1,6 @@
+#Wed Mar 15 11:05:12 CDT 2023
+distributionBase=GRADLE_USER_HOME
+distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-bin.zip
+distributionPath=wrapper/dists
+zipStorePath=wrapper/dists
+zipStoreBase=GRADLE_USER_HOME
diff --git a/Assignments/recycler_click/gradlew b/Assignments/recycler_click/gradlew
new file mode 100644
index 0000000..4f906e0
--- /dev/null
+++ b/Assignments/recycler_click/gradlew
@@ -0,0 +1,185 @@
+#!/usr/bin/env sh
+
+#
+# Copyright 2015 the original author or authors.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+##############################################################################
+##
+## Gradle start up script for UN*X
+##
+##############################################################################
+
+# Attempt to set APP_HOME
+# Resolve links: $0 may be a link
+PRG="$0"
+# Need this for relative symlinks.
+while [ -h "$PRG" ] ; do
+ ls=`ls -ld "$PRG"`
+ link=`expr "$ls" : '.*-> \(.*\)$'`
+ if expr "$link" : '/.*' > /dev/null; then
+ PRG="$link"
+ else
+ PRG=`dirname "$PRG"`"/$link"
+ fi
+done
+SAVED="`pwd`"
+cd "`dirname \"$PRG\"`/" >/dev/null
+APP_HOME="`pwd -P`"
+cd "$SAVED" >/dev/null
+
+APP_NAME="Gradle"
+APP_BASE_NAME=`basename "$0"`
+
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
+
+# Use the maximum available, or set MAX_FD != -1 to use that value.
+MAX_FD="maximum"
+
+warn () {
+ echo "$*"
+}
+
+die () {
+ echo
+ echo "$*"
+ echo
+ exit 1
+}
+
+# OS specific support (must be 'true' or 'false').
+cygwin=false
+msys=false
+darwin=false
+nonstop=false
+case "`uname`" in
+ CYGWIN* )
+ cygwin=true
+ ;;
+ Darwin* )
+ darwin=true
+ ;;
+ MINGW* )
+ msys=true
+ ;;
+ NONSTOP* )
+ nonstop=true
+ ;;
+esac
+
+CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
+
+
+# Determine the Java command to use to start the JVM.
+if [ -n "$JAVA_HOME" ] ; then
+ if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+ # IBM's JDK on AIX uses strange locations for the executables
+ JAVACMD="$JAVA_HOME/jre/sh/java"
+ else
+ JAVACMD="$JAVA_HOME/bin/java"
+ fi
+ if [ ! -x "$JAVACMD" ] ; then
+ die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+ fi
+else
+ JAVACMD="java"
+ which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+fi
+
+# Increase the maximum file descriptors if we can.
+if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
+ MAX_FD_LIMIT=`ulimit -H -n`
+ if [ $? -eq 0 ] ; then
+ if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
+ MAX_FD="$MAX_FD_LIMIT"
+ fi
+ ulimit -n $MAX_FD
+ if [ $? -ne 0 ] ; then
+ warn "Could not set maximum file descriptor limit: $MAX_FD"
+ fi
+ else
+ warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
+ fi
+fi
+
+# For Darwin, add options to specify how the application appears in the dock
+if $darwin; then
+ GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
+fi
+
+# For Cygwin or MSYS, switch paths to Windows format before running java
+if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then
+ APP_HOME=`cygpath --path --mixed "$APP_HOME"`
+ CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
+
+ JAVACMD=`cygpath --unix "$JAVACMD"`
+
+ # We build the pattern for arguments to be converted via cygpath
+ ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
+ SEP=""
+ for dir in $ROOTDIRSRAW ; do
+ ROOTDIRS="$ROOTDIRS$SEP$dir"
+ SEP="|"
+ done
+ OURCYGPATTERN="(^($ROOTDIRS))"
+ # Add a user-defined pattern to the cygpath arguments
+ if [ "$GRADLE_CYGPATTERN" != "" ] ; then
+ OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
+ fi
+ # Now convert the arguments - kludge to limit ourselves to /bin/sh
+ i=0
+ for arg in "$@" ; do
+ CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
+ CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
+
+ if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
+ eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
+ else
+ eval `echo args$i`="\"$arg\""
+ fi
+ i=`expr $i + 1`
+ done
+ case $i in
+ 0) set -- ;;
+ 1) set -- "$args0" ;;
+ 2) set -- "$args0" "$args1" ;;
+ 3) set -- "$args0" "$args1" "$args2" ;;
+ 4) set -- "$args0" "$args1" "$args2" "$args3" ;;
+ 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
+ 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
+ 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
+ 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
+ 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
+ esac
+fi
+
+# Escape application args
+save () {
+ for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
+ echo " "
+}
+APP_ARGS=`save "$@"`
+
+# Collect all arguments for the java command, following the shell quoting and substitution rules
+eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
+
+exec "$JAVACMD" "$@"
diff --git a/Assignments/recycler_click/gradlew.bat b/Assignments/recycler_click/gradlew.bat
new file mode 100644
index 0000000..ac1b06f
--- /dev/null
+++ b/Assignments/recycler_click/gradlew.bat
@@ -0,0 +1,89 @@
+@rem
+@rem Copyright 2015 the original author or authors.
+@rem
+@rem Licensed under the Apache License, Version 2.0 (the "License");
+@rem you may not use this file except in compliance with the License.
+@rem You may obtain a copy of the License at
+@rem
+@rem https://www.apache.org/licenses/LICENSE-2.0
+@rem
+@rem Unless required by applicable law or agreed to in writing, software
+@rem distributed under the License is distributed on an "AS IS" BASIS,
+@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+@rem See the License for the specific language governing permissions and
+@rem limitations under the License.
+@rem
+
+@if "%DEBUG%" == "" @echo off
+@rem ##########################################################################
+@rem
+@rem Gradle startup script for Windows
+@rem
+@rem ##########################################################################
+
+@rem Set local scope for the variables with windows NT shell
+if "%OS%"=="Windows_NT" setlocal
+
+set DIRNAME=%~dp0
+if "%DIRNAME%" == "" set DIRNAME=.
+set APP_BASE_NAME=%~n0
+set APP_HOME=%DIRNAME%
+
+@rem Resolve any "." and ".." in APP_HOME to make it shorter.
+for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
+
+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
+
+@rem Find java.exe
+if defined JAVA_HOME goto findJavaFromJavaHome
+
+set JAVA_EXE=java.exe
+%JAVA_EXE% -version >NUL 2>&1
+if "%ERRORLEVEL%" == "0" goto execute
+
+echo.
+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:findJavaFromJavaHome
+set JAVA_HOME=%JAVA_HOME:"=%
+set JAVA_EXE=%JAVA_HOME%/bin/java.exe
+
+if exist "%JAVA_EXE%" goto execute
+
+echo.
+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:execute
+@rem Setup the command line
+
+set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
+
+
+@rem Execute Gradle
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
+
+:end
+@rem End local scope for the variables with windows NT shell
+if "%ERRORLEVEL%"=="0" goto mainEnd
+
+:fail
+rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
+rem the _cmd.exe /c_ return code!
+if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
+exit /b 1
+
+:mainEnd
+if "%OS%"=="Windows_NT" endlocal
+
+:omega
diff --git a/Assignments/recycler_click/settings.gradle b/Assignments/recycler_click/settings.gradle
new file mode 100644
index 0000000..30d9c7c
--- /dev/null
+++ b/Assignments/recycler_click/settings.gradle
@@ -0,0 +1,16 @@
+pluginManagement {
+ repositories {
+ gradlePluginPortal()
+ google()
+ mavenCentral()
+ }
+}
+dependencyResolutionManagement {
+ repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
+ repositories {
+ google()
+ mavenCentral()
+ }
+}
+rootProject.name = "FragmentToFragmentMap"
+include ':app'
diff --git a/Assignments/templatesMatricesSample.zip b/Assignments/templatesMatricesSample.zip
new file mode 100644
index 0000000..ec869c4
Binary files /dev/null and b/Assignments/templatesMatricesSample.zip differ
diff --git a/Quizzes/.gradle/config.properties b/Quizzes/.gradle/config.properties
new file mode 100644
index 0000000..795b126
--- /dev/null
+++ b/Quizzes/.gradle/config.properties
@@ -0,0 +1,2 @@
+#Wed Mar 13 09:22:47 CDT 2024
+java.home=/opt/android-studio/jbr
diff --git a/Quizzes/.idea/discord.xml b/Quizzes/.idea/discord.xml
new file mode 100644
index 0000000..30bab2a
--- /dev/null
+++ b/Quizzes/.idea/discord.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Assignments/fragmentToFragmnetMap/.idea/gradle.xml b/Quizzes/.idea/gradle.xml
similarity index 100%
rename from Assignments/fragmentToFragmnetMap/.idea/gradle.xml
rename to Quizzes/.idea/gradle.xml
diff --git a/Quizzes/.idea/migrations.xml b/Quizzes/.idea/migrations.xml
new file mode 100644
index 0000000..f8051a6
--- /dev/null
+++ b/Quizzes/.idea/migrations.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Quizzes/.idea/misc.xml b/Quizzes/.idea/misc.xml
new file mode 100644
index 0000000..3040d03
--- /dev/null
+++ b/Quizzes/.idea/misc.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Quizzes/.idea/vcs.xml b/Quizzes/.idea/vcs.xml
new file mode 100644
index 0000000..6c0b863
--- /dev/null
+++ b/Quizzes/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Quizzes/.idea/workspace.xml b/Quizzes/.idea/workspace.xml
new file mode 100644
index 0000000..fbb92e3
--- /dev/null
+++ b/Quizzes/.idea/workspace.xml
@@ -0,0 +1,246 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/.idea/gradle.xml b/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/.idea/gradle.xml
new file mode 100644
index 0000000..32522c1
--- /dev/null
+++ b/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/.idea/gradle.xml
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/.idea/migrations.xml b/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/.idea/migrations.xml
new file mode 100644
index 0000000..f8051a6
--- /dev/null
+++ b/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/.idea/migrations.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/.idea/misc.xml b/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/.idea/misc.xml
new file mode 100644
index 0000000..0ad17cb
--- /dev/null
+++ b/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/.idea/misc.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/.idea/vcs.xml b/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/.idea/vcs.xml
new file mode 100644
index 0000000..c2365ab
--- /dev/null
+++ b/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/app/.gitignore b/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/app/.gitignore
new file mode 100644
index 0000000..42afabf
--- /dev/null
+++ b/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/app/.gitignore
@@ -0,0 +1 @@
+/build
\ No newline at end of file
diff --git a/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/app/build.gradle.kts b/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/app/build.gradle.kts
new file mode 100644
index 0000000..70b64fc
--- /dev/null
+++ b/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/app/build.gradle.kts
@@ -0,0 +1,43 @@
+plugins {
+ alias(libs.plugins.androidApplication)
+}
+
+android {
+ namespace = "com.calebfontenot.problem1_calebfontenot"
+ compileSdk = 34
+
+ defaultConfig {
+ applicationId = "com.calebfontenot.problem1_calebfontenot"
+ minSdk = 24
+ targetSdk = 34
+ versionCode = 1
+ versionName = "1.0"
+
+ testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
+ }
+
+ buildTypes {
+ release {
+ isMinifyEnabled = false
+ proguardFiles(
+ getDefaultProguardFile("proguard-android-optimize.txt"),
+ "proguard-rules.pro"
+ )
+ }
+ }
+ compileOptions {
+ sourceCompatibility = JavaVersion.VERSION_1_8
+ targetCompatibility = JavaVersion.VERSION_1_8
+ }
+}
+
+dependencies {
+
+ implementation(libs.appcompat)
+ implementation(libs.material)
+ implementation(libs.activity)
+ implementation(libs.constraintlayout)
+ testImplementation(libs.junit)
+ androidTestImplementation(libs.ext.junit)
+ androidTestImplementation(libs.espresso.core)
+}
\ No newline at end of file
diff --git a/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/app/proguard-rules.pro b/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/app/proguard-rules.pro
new file mode 100644
index 0000000..481bb43
--- /dev/null
+++ b/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/app/proguard-rules.pro
@@ -0,0 +1,21 @@
+# Add project specific ProGuard rules here.
+# You can control the set of applied configuration files using the
+# proguardFiles setting in build.gradle.
+#
+# For more details, see
+# http://developer.android.com/guide/developing/tools/proguard.html
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+# public *;
+#}
+
+# Uncomment this to preserve the line number information for
+# debugging stack traces.
+#-keepattributes SourceFile,LineNumberTable
+
+# If you keep the line number information, uncomment this to
+# hide the original source file name.
+#-renamesourcefileattribute SourceFile
\ No newline at end of file
diff --git a/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/app/src/androidTest/java/com/calebfontenot/problem1_calebfontenot/ExampleInstrumentedTest.java b/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/app/src/androidTest/java/com/calebfontenot/problem1_calebfontenot/ExampleInstrumentedTest.java
new file mode 100644
index 0000000..eac4d02
--- /dev/null
+++ b/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/app/src/androidTest/java/com/calebfontenot/problem1_calebfontenot/ExampleInstrumentedTest.java
@@ -0,0 +1,26 @@
+package com.calebfontenot.problem1_calebfontenot;
+
+import android.content.Context;
+
+import androidx.test.platform.app.InstrumentationRegistry;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import static org.junit.Assert.*;
+
+/**
+ * Instrumented test, which will execute on an Android device.
+ *
+ * @see Testing documentation
+ */
+@RunWith(AndroidJUnit4.class)
+public class ExampleInstrumentedTest {
+ @Test
+ public void useAppContext() {
+ // Context of the app under test.
+ Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext();
+ assertEquals("com.calebfontenot.problem1_calebfontenot", appContext.getPackageName());
+ }
+}
\ No newline at end of file
diff --git a/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/app/src/main/AndroidManifest.xml b/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/app/src/main/AndroidManifest.xml
new file mode 100644
index 0000000..15f7ffd
--- /dev/null
+++ b/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/app/src/main/AndroidManifest.xml
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/app/src/main/java/com/calebfontenot/problem1_calebfontenot/Activity1.java b/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/app/src/main/java/com/calebfontenot/problem1_calebfontenot/Activity1.java
new file mode 100644
index 0000000..e498f33
--- /dev/null
+++ b/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/app/src/main/java/com/calebfontenot/problem1_calebfontenot/Activity1.java
@@ -0,0 +1,61 @@
+package com.calebfontenot.problem1_calebfontenot;
+
+import android.content.Intent;
+import android.os.Bundle;
+
+import androidx.activity.EdgeToEdge;
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.core.graphics.Insets;
+import androidx.core.view.ViewCompat;
+import androidx.core.view.WindowInsetsCompat;
+
+import android.view.View;
+import android.widget.Button;
+import android.widget.TextView;
+
+import java.io.Serializable;
+
+public class Activity1 extends AppCompatActivity {
+ TextView uuidTextView;
+ Button passDataButton;
+ Data data;
+ Data dataFromActivity2;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ EdgeToEdge.enable(this);
+ setContentView(R.layout.activity1);
+ ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.activity1), (v, insets) -> {
+ Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars());
+ v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom);
+ return insets;
+ });
+ Bundle extras = getIntent().getExtras();
+ if (extras == null) {
+ data = new Data();
+ } else {
+ data = (Data) extras.getSerializable("modifiedUUID");
+ dataFromActivity2 = (Data) extras.getSerializable("originalUUID");
+ }
+
+ uuidTextView = this.findViewById(R.id.textViewUUID);
+ passDataButton = this.findViewById(R.id.passDataButton);
+ String uuidInfoFromActivity2;
+ if (dataFromActivity2 == null) {
+ uuidInfoFromActivity2 = "nothing yet";
+ } else {
+ uuidInfoFromActivity2 = dataFromActivity2.toString();
+ }
+ uuidTextView.setText("UUID: " + data + "\n" + "Data from 2nd Activity: " + uuidInfoFromActivity2);
+
+ passDataButton.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ Intent i = new Intent(Activity1.this, Activity2.class);
+ i.putExtra("originalUUID",data);
+ startActivity(i);
+ }
+ });
+ }
+}
\ No newline at end of file
diff --git a/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/app/src/main/java/com/calebfontenot/problem1_calebfontenot/Activity2.java b/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/app/src/main/java/com/calebfontenot/problem1_calebfontenot/Activity2.java
new file mode 100644
index 0000000..26e4108
--- /dev/null
+++ b/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/app/src/main/java/com/calebfontenot/problem1_calebfontenot/Activity2.java
@@ -0,0 +1,54 @@
+package com.calebfontenot.problem1_calebfontenot;
+
+import android.content.Intent;
+import android.os.Bundle;
+import android.view.View;
+import android.widget.Button;
+import android.widget.TextView;
+
+import androidx.activity.EdgeToEdge;
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.core.graphics.Insets;
+import androidx.core.view.ViewCompat;
+import androidx.core.view.WindowInsetsCompat;
+
+import java.util.UUID;
+
+public class Activity2 extends AppCompatActivity {
+ TextView uuidTextView;
+ Button passDataButton;
+ Data data;
+ Data dataFromActivity1;
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ EdgeToEdge.enable(this);
+ setContentView(R.layout.activity_2);
+ ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main), (v, insets) -> {
+ Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars());
+ v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom);
+ return insets;
+ });
+ Bundle extras = getIntent().getExtras();
+ dataFromActivity1 = (Data) extras.getSerializable("originalUUID");
+
+ uuidTextView = this.findViewById(R.id.textViewUUID);
+ passDataButton = this.findViewById(R.id.passDataButton);
+
+ data = dataFromActivity1;
+ data.setInstance(UUID.randomUUID());
+
+ uuidTextView.setText("UUID from Activity1: " + dataFromActivity1 + "\n" + "UUID from Activity2:" + data);
+
+ passDataButton.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ Intent i = new Intent(Activity2.this, Activity1.class);
+ i.putExtra("modifiedUUID",data);
+ i.putExtra("originalUUID", dataFromActivity1);
+ startActivity(i);
+ }
+ });
+
+ }
+}
\ No newline at end of file
diff --git a/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/app/src/main/java/com/calebfontenot/problem1_calebfontenot/Data.java b/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/app/src/main/java/com/calebfontenot/problem1_calebfontenot/Data.java
new file mode 100644
index 0000000..62018b4
--- /dev/null
+++ b/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/app/src/main/java/com/calebfontenot/problem1_calebfontenot/Data.java
@@ -0,0 +1,25 @@
+package com.calebfontenot.problem1_calebfontenot;
+
+import java.io.Serializable;
+import java.util.UUID;
+
+public class Data implements Serializable {
+ UUID instance;
+
+ public Data() {
+ this.instance = UUID.randomUUID();
+ }
+
+ public UUID getInstance() {
+ return instance;
+ }
+
+ public void setInstance(UUID instance) {
+ this.instance = instance;
+ }
+
+ @Override
+ public String toString() {
+ return instance.toString();
+ }
+}
diff --git a/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/app/src/main/res/drawable/ic_launcher_background.xml b/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/app/src/main/res/drawable/ic_launcher_background.xml
new file mode 100644
index 0000000..07d5da9
--- /dev/null
+++ b/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/app/src/main/res/drawable/ic_launcher_background.xml
@@ -0,0 +1,170 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/app/src/main/res/drawable/ic_launcher_foreground.xml b/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/app/src/main/res/drawable/ic_launcher_foreground.xml
new file mode 100644
index 0000000..2b068d1
--- /dev/null
+++ b/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/app/src/main/res/drawable/ic_launcher_foreground.xml
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/app/src/main/res/layout/activity1.xml b/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/app/src/main/res/layout/activity1.xml
new file mode 100644
index 0000000..ce4c3c8
--- /dev/null
+++ b/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/app/src/main/res/layout/activity1.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/app/src/main/res/layout/activity_2.xml b/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/app/src/main/res/layout/activity_2.xml
new file mode 100644
index 0000000..93eee08
--- /dev/null
+++ b/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/app/src/main/res/layout/activity_2.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
new file mode 100644
index 0000000..6f3b755
--- /dev/null
+++ b/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
new file mode 100644
index 0000000..6f3b755
--- /dev/null
+++ b/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/app/src/main/res/mipmap-hdpi/ic_launcher.webp b/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/app/src/main/res/mipmap-hdpi/ic_launcher.webp
new file mode 100644
index 0000000..c209e78
Binary files /dev/null and b/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/app/src/main/res/mipmap-hdpi/ic_launcher.webp differ
diff --git a/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp b/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp
new file mode 100644
index 0000000..b2dfe3d
Binary files /dev/null and b/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp differ
diff --git a/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/app/src/main/res/mipmap-mdpi/ic_launcher.webp b/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/app/src/main/res/mipmap-mdpi/ic_launcher.webp
new file mode 100644
index 0000000..4f0f1d6
Binary files /dev/null and b/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/app/src/main/res/mipmap-mdpi/ic_launcher.webp differ
diff --git a/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp b/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp
new file mode 100644
index 0000000..62b611d
Binary files /dev/null and b/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp differ
diff --git a/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/app/src/main/res/mipmap-xhdpi/ic_launcher.webp b/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/app/src/main/res/mipmap-xhdpi/ic_launcher.webp
new file mode 100644
index 0000000..948a307
Binary files /dev/null and b/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/app/src/main/res/mipmap-xhdpi/ic_launcher.webp differ
diff --git a/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp b/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp
new file mode 100644
index 0000000..1b9a695
Binary files /dev/null and b/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp differ
diff --git a/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp b/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp
new file mode 100644
index 0000000..28d4b77
Binary files /dev/null and b/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp differ
diff --git a/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp b/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp
new file mode 100644
index 0000000..9287f50
Binary files /dev/null and b/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp differ
diff --git a/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp b/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp
new file mode 100644
index 0000000..aa7d642
Binary files /dev/null and b/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp differ
diff --git a/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp b/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp
new file mode 100644
index 0000000..9126ae3
Binary files /dev/null and b/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp differ
diff --git a/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/app/src/main/res/values-night/themes.xml b/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/app/src/main/res/values-night/themes.xml
new file mode 100644
index 0000000..21beaf2
--- /dev/null
+++ b/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/app/src/main/res/values-night/themes.xml
@@ -0,0 +1,7 @@
+
+
+
+
\ No newline at end of file
diff --git a/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/app/src/main/res/values/colors.xml b/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/app/src/main/res/values/colors.xml
new file mode 100644
index 0000000..c8524cd
--- /dev/null
+++ b/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/app/src/main/res/values/colors.xml
@@ -0,0 +1,5 @@
+
+
+ #FF000000
+ #FFFFFFFF
+
\ No newline at end of file
diff --git a/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/app/src/main/res/values/strings.xml b/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/app/src/main/res/values/strings.xml
new file mode 100644
index 0000000..52566f4
--- /dev/null
+++ b/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/app/src/main/res/values/strings.xml
@@ -0,0 +1,3 @@
+
+ Problem1_CalebFontenot
+
\ No newline at end of file
diff --git a/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/app/src/main/res/values/themes.xml b/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/app/src/main/res/values/themes.xml
new file mode 100644
index 0000000..dea640e
--- /dev/null
+++ b/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/app/src/main/res/values/themes.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/app/src/main/res/xml/backup_rules.xml b/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/app/src/main/res/xml/backup_rules.xml
new file mode 100644
index 0000000..fa0f996
--- /dev/null
+++ b/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/app/src/main/res/xml/backup_rules.xml
@@ -0,0 +1,13 @@
+
+
+
+
\ No newline at end of file
diff --git a/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/app/src/main/res/xml/data_extraction_rules.xml b/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/app/src/main/res/xml/data_extraction_rules.xml
new file mode 100644
index 0000000..9ee9997
--- /dev/null
+++ b/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/app/src/main/res/xml/data_extraction_rules.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/app/src/test/java/com/calebfontenot/problem1_calebfontenot/ExampleUnitTest.java b/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/app/src/test/java/com/calebfontenot/problem1_calebfontenot/ExampleUnitTest.java
new file mode 100644
index 0000000..56b512b
--- /dev/null
+++ b/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/app/src/test/java/com/calebfontenot/problem1_calebfontenot/ExampleUnitTest.java
@@ -0,0 +1,17 @@
+package com.calebfontenot.problem1_calebfontenot;
+
+import org.junit.Test;
+
+import static org.junit.Assert.*;
+
+/**
+ * Example local unit test, which will execute on the development machine (host).
+ *
+ * @see Testing documentation
+ */
+public class ExampleUnitTest {
+ @Test
+ public void addition_isCorrect() {
+ assertEquals(4, 2 + 2);
+ }
+}
\ No newline at end of file
diff --git a/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/build.gradle.kts b/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/build.gradle.kts
new file mode 100644
index 0000000..2bbd2a9
--- /dev/null
+++ b/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/build.gradle.kts
@@ -0,0 +1,4 @@
+// Top-level build file where you can add configuration options common to all sub-projects/modules.
+plugins {
+ alias(libs.plugins.androidApplication) apply false
+}
\ No newline at end of file
diff --git a/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/gradle.properties b/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/gradle.properties
new file mode 100644
index 0000000..4387edc
--- /dev/null
+++ b/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/gradle.properties
@@ -0,0 +1,21 @@
+# Project-wide Gradle settings.
+# IDE (e.g. Android Studio) users:
+# Gradle settings configured through the IDE *will override*
+# any settings specified in this file.
+# For more details on how to configure your build environment visit
+# http://www.gradle.org/docs/current/userguide/build_environment.html
+# Specifies the JVM arguments used for the daemon process.
+# The setting is particularly useful for tweaking memory settings.
+org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8
+# When configured, Gradle will run in incubating parallel mode.
+# This option should only be used with decoupled projects. For more details, visit
+# https://developer.android.com/r/tools/gradle-multi-project-decoupled-projects
+# org.gradle.parallel=true
+# AndroidX package structure to make it clearer which packages are bundled with the
+# Android operating system, and which are packaged with your app's APK
+# https://developer.android.com/topic/libraries/support-library/androidx-rn
+android.useAndroidX=true
+# Enables namespacing of each library's R class so that its R class includes only the
+# resources declared in the library itself and none from the library's dependencies,
+# thereby reducing the size of the R class for that library
+android.nonTransitiveRClass=true
\ No newline at end of file
diff --git a/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/gradle/libs.versions.toml b/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/gradle/libs.versions.toml
new file mode 100644
index 0000000..4c0cc21
--- /dev/null
+++ b/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/gradle/libs.versions.toml
@@ -0,0 +1,22 @@
+[versions]
+agp = "8.3.0"
+junit = "4.13.2"
+junitVersion = "1.1.5"
+espressoCore = "3.5.1"
+appcompat = "1.6.1"
+material = "1.11.0"
+activity = "1.8.0"
+constraintlayout = "2.1.4"
+
+[libraries]
+junit = { group = "junit", name = "junit", version.ref = "junit" }
+ext-junit = { group = "androidx.test.ext", name = "junit", version.ref = "junitVersion" }
+espresso-core = { group = "androidx.test.espresso", name = "espresso-core", version.ref = "espressoCore" }
+appcompat = { group = "androidx.appcompat", name = "appcompat", version.ref = "appcompat" }
+material = { group = "com.google.android.material", name = "material", version.ref = "material" }
+activity = { group = "androidx.activity", name = "activity", version.ref = "activity" }
+constraintlayout = { group = "androidx.constraintlayout", name = "constraintlayout", version.ref = "constraintlayout" }
+
+[plugins]
+androidApplication = { id = "com.android.application", version.ref = "agp" }
+
diff --git a/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/gradle/wrapper/gradle-wrapper.jar b/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/gradle/wrapper/gradle-wrapper.jar
new file mode 100644
index 0000000..e708b1c
Binary files /dev/null and b/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/gradle/wrapper/gradle-wrapper.properties b/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/gradle/wrapper/gradle-wrapper.properties
new file mode 100644
index 0000000..81934cc
--- /dev/null
+++ b/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/gradle/wrapper/gradle-wrapper.properties
@@ -0,0 +1,6 @@
+#Wed Mar 13 09:24:00 CDT 2024
+distributionBase=GRADLE_USER_HOME
+distributionPath=wrapper/dists
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.4-bin.zip
+zipStoreBase=GRADLE_USER_HOME
+zipStorePath=wrapper/dists
diff --git a/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/gradlew b/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/gradlew
new file mode 100755
index 0000000..4f906e0
--- /dev/null
+++ b/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/gradlew
@@ -0,0 +1,185 @@
+#!/usr/bin/env sh
+
+#
+# Copyright 2015 the original author or authors.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+##############################################################################
+##
+## Gradle start up script for UN*X
+##
+##############################################################################
+
+# Attempt to set APP_HOME
+# Resolve links: $0 may be a link
+PRG="$0"
+# Need this for relative symlinks.
+while [ -h "$PRG" ] ; do
+ ls=`ls -ld "$PRG"`
+ link=`expr "$ls" : '.*-> \(.*\)$'`
+ if expr "$link" : '/.*' > /dev/null; then
+ PRG="$link"
+ else
+ PRG=`dirname "$PRG"`"/$link"
+ fi
+done
+SAVED="`pwd`"
+cd "`dirname \"$PRG\"`/" >/dev/null
+APP_HOME="`pwd -P`"
+cd "$SAVED" >/dev/null
+
+APP_NAME="Gradle"
+APP_BASE_NAME=`basename "$0"`
+
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
+
+# Use the maximum available, or set MAX_FD != -1 to use that value.
+MAX_FD="maximum"
+
+warn () {
+ echo "$*"
+}
+
+die () {
+ echo
+ echo "$*"
+ echo
+ exit 1
+}
+
+# OS specific support (must be 'true' or 'false').
+cygwin=false
+msys=false
+darwin=false
+nonstop=false
+case "`uname`" in
+ CYGWIN* )
+ cygwin=true
+ ;;
+ Darwin* )
+ darwin=true
+ ;;
+ MINGW* )
+ msys=true
+ ;;
+ NONSTOP* )
+ nonstop=true
+ ;;
+esac
+
+CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
+
+
+# Determine the Java command to use to start the JVM.
+if [ -n "$JAVA_HOME" ] ; then
+ if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+ # IBM's JDK on AIX uses strange locations for the executables
+ JAVACMD="$JAVA_HOME/jre/sh/java"
+ else
+ JAVACMD="$JAVA_HOME/bin/java"
+ fi
+ if [ ! -x "$JAVACMD" ] ; then
+ die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+ fi
+else
+ JAVACMD="java"
+ which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+fi
+
+# Increase the maximum file descriptors if we can.
+if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
+ MAX_FD_LIMIT=`ulimit -H -n`
+ if [ $? -eq 0 ] ; then
+ if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
+ MAX_FD="$MAX_FD_LIMIT"
+ fi
+ ulimit -n $MAX_FD
+ if [ $? -ne 0 ] ; then
+ warn "Could not set maximum file descriptor limit: $MAX_FD"
+ fi
+ else
+ warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
+ fi
+fi
+
+# For Darwin, add options to specify how the application appears in the dock
+if $darwin; then
+ GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
+fi
+
+# For Cygwin or MSYS, switch paths to Windows format before running java
+if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then
+ APP_HOME=`cygpath --path --mixed "$APP_HOME"`
+ CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
+
+ JAVACMD=`cygpath --unix "$JAVACMD"`
+
+ # We build the pattern for arguments to be converted via cygpath
+ ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
+ SEP=""
+ for dir in $ROOTDIRSRAW ; do
+ ROOTDIRS="$ROOTDIRS$SEP$dir"
+ SEP="|"
+ done
+ OURCYGPATTERN="(^($ROOTDIRS))"
+ # Add a user-defined pattern to the cygpath arguments
+ if [ "$GRADLE_CYGPATTERN" != "" ] ; then
+ OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
+ fi
+ # Now convert the arguments - kludge to limit ourselves to /bin/sh
+ i=0
+ for arg in "$@" ; do
+ CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
+ CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
+
+ if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
+ eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
+ else
+ eval `echo args$i`="\"$arg\""
+ fi
+ i=`expr $i + 1`
+ done
+ case $i in
+ 0) set -- ;;
+ 1) set -- "$args0" ;;
+ 2) set -- "$args0" "$args1" ;;
+ 3) set -- "$args0" "$args1" "$args2" ;;
+ 4) set -- "$args0" "$args1" "$args2" "$args3" ;;
+ 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
+ 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
+ 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
+ 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
+ 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
+ esac
+fi
+
+# Escape application args
+save () {
+ for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
+ echo " "
+}
+APP_ARGS=`save "$@"`
+
+# Collect all arguments for the java command, following the shell quoting and substitution rules
+eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
+
+exec "$JAVACMD" "$@"
diff --git a/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/gradlew.bat b/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/gradlew.bat
new file mode 100644
index 0000000..ac1b06f
--- /dev/null
+++ b/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/gradlew.bat
@@ -0,0 +1,89 @@
+@rem
+@rem Copyright 2015 the original author or authors.
+@rem
+@rem Licensed under the Apache License, Version 2.0 (the "License");
+@rem you may not use this file except in compliance with the License.
+@rem You may obtain a copy of the License at
+@rem
+@rem https://www.apache.org/licenses/LICENSE-2.0
+@rem
+@rem Unless required by applicable law or agreed to in writing, software
+@rem distributed under the License is distributed on an "AS IS" BASIS,
+@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+@rem See the License for the specific language governing permissions and
+@rem limitations under the License.
+@rem
+
+@if "%DEBUG%" == "" @echo off
+@rem ##########################################################################
+@rem
+@rem Gradle startup script for Windows
+@rem
+@rem ##########################################################################
+
+@rem Set local scope for the variables with windows NT shell
+if "%OS%"=="Windows_NT" setlocal
+
+set DIRNAME=%~dp0
+if "%DIRNAME%" == "" set DIRNAME=.
+set APP_BASE_NAME=%~n0
+set APP_HOME=%DIRNAME%
+
+@rem Resolve any "." and ".." in APP_HOME to make it shorter.
+for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
+
+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
+
+@rem Find java.exe
+if defined JAVA_HOME goto findJavaFromJavaHome
+
+set JAVA_EXE=java.exe
+%JAVA_EXE% -version >NUL 2>&1
+if "%ERRORLEVEL%" == "0" goto execute
+
+echo.
+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:findJavaFromJavaHome
+set JAVA_HOME=%JAVA_HOME:"=%
+set JAVA_EXE=%JAVA_HOME%/bin/java.exe
+
+if exist "%JAVA_EXE%" goto execute
+
+echo.
+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:execute
+@rem Setup the command line
+
+set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
+
+
+@rem Execute Gradle
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
+
+:end
+@rem End local scope for the variables with windows NT shell
+if "%ERRORLEVEL%"=="0" goto mainEnd
+
+:fail
+rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
+rem the _cmd.exe /c_ return code!
+if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
+exit /b 1
+
+:mainEnd
+if "%OS%"=="Windows_NT" endlocal
+
+:omega
diff --git a/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/settings.gradle.kts b/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/settings.gradle.kts
new file mode 100644
index 0000000..644259a
--- /dev/null
+++ b/Quizzes/ProgrammingExam1/Problem1_CalebFontenot/settings.gradle.kts
@@ -0,0 +1,23 @@
+pluginManagement {
+ repositories {
+ google {
+ content {
+ includeGroupByRegex("com\\.android.*")
+ includeGroupByRegex("com\\.google.*")
+ includeGroupByRegex("androidx.*")
+ }
+ }
+ mavenCentral()
+ gradlePluginPortal()
+ }
+}
+dependencyResolutionManagement {
+ repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
+ repositories {
+ google()
+ mavenCentral()
+ }
+}
+
+rootProject.name = "Problem1_CalebFontenot"
+include(":app")
diff --git a/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/.gitignore b/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/.gitignore
new file mode 100644
index 0000000..aa724b7
--- /dev/null
+++ b/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/.gitignore
@@ -0,0 +1,15 @@
+*.iml
+.gradle
+/local.properties
+/.idea/caches
+/.idea/libraries
+/.idea/modules.xml
+/.idea/workspace.xml
+/.idea/navEditor.xml
+/.idea/assetWizardSettings.xml
+.DS_Store
+/build
+/captures
+.externalNativeBuild
+.cxx
+local.properties
diff --git a/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/.idea/.gitignore b/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/.idea/.gitignore
new file mode 100644
index 0000000..26d3352
--- /dev/null
+++ b/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/.idea/.gitignore
@@ -0,0 +1,3 @@
+# Default ignored files
+/shelf/
+/workspace.xml
diff --git a/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/.idea/appInsightsSettings.xml b/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/.idea/appInsightsSettings.xml
new file mode 100644
index 0000000..371f2e2
--- /dev/null
+++ b/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/.idea/appInsightsSettings.xml
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/.idea/codeStyles b/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/.idea/codeStyles
new file mode 100644
index 0000000..e2e415d
--- /dev/null
+++ b/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/.idea/codeStyles
@@ -0,0 +1,119 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/.idea/gradle.xml b/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/.idea/gradle.xml
new file mode 100644
index 0000000..0897082
--- /dev/null
+++ b/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/.idea/gradle.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/.idea/migrations.xml b/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/.idea/migrations.xml
new file mode 100644
index 0000000..f8051a6
--- /dev/null
+++ b/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/.idea/migrations.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/.idea/misc.xml b/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/.idea/misc.xml
new file mode 100644
index 0000000..8978d23
--- /dev/null
+++ b/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/.idea/misc.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/.idea/vcs.xml b/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/.idea/vcs.xml
new file mode 100644
index 0000000..c2365ab
--- /dev/null
+++ b/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/app/.gitignore b/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/app/.gitignore
new file mode 100644
index 0000000..42afabf
--- /dev/null
+++ b/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/app/.gitignore
@@ -0,0 +1 @@
+/build
\ No newline at end of file
diff --git a/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/app/build.gradle.kts b/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/app/build.gradle.kts
new file mode 100644
index 0000000..cff2a36
--- /dev/null
+++ b/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/app/build.gradle.kts
@@ -0,0 +1,43 @@
+plugins {
+ alias(libs.plugins.androidApplication)
+}
+
+android {
+ namespace = "com.calebfontenot.problem2_calebfontenot"
+ compileSdk = 34
+
+ defaultConfig {
+ applicationId = "com.calebfontenot.problem2_calebfontenot"
+ minSdk = 24
+ targetSdk = 34
+ versionCode = 1
+ versionName = "1.0"
+
+ testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
+ }
+
+ buildTypes {
+ release {
+ isMinifyEnabled = false
+ proguardFiles(
+ getDefaultProguardFile("proguard-android-optimize.txt"),
+ "proguard-rules.pro"
+ )
+ }
+ }
+ compileOptions {
+ sourceCompatibility = JavaVersion.VERSION_1_8
+ targetCompatibility = JavaVersion.VERSION_1_8
+ }
+}
+
+dependencies {
+
+ implementation(libs.appcompat)
+ implementation(libs.material)
+ implementation(libs.activity)
+ implementation(libs.constraintlayout)
+ testImplementation(libs.junit)
+ androidTestImplementation(libs.ext.junit)
+ androidTestImplementation(libs.espresso.core)
+}
\ No newline at end of file
diff --git a/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/app/proguard-rules.pro b/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/app/proguard-rules.pro
new file mode 100644
index 0000000..481bb43
--- /dev/null
+++ b/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/app/proguard-rules.pro
@@ -0,0 +1,21 @@
+# Add project specific ProGuard rules here.
+# You can control the set of applied configuration files using the
+# proguardFiles setting in build.gradle.
+#
+# For more details, see
+# http://developer.android.com/guide/developing/tools/proguard.html
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+# public *;
+#}
+
+# Uncomment this to preserve the line number information for
+# debugging stack traces.
+#-keepattributes SourceFile,LineNumberTable
+
+# If you keep the line number information, uncomment this to
+# hide the original source file name.
+#-renamesourcefileattribute SourceFile
\ No newline at end of file
diff --git a/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/app/src/androidTest/java/com/calebfontenot/problem2_calebfontenot/ExampleInstrumentedTest.java b/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/app/src/androidTest/java/com/calebfontenot/problem2_calebfontenot/ExampleInstrumentedTest.java
new file mode 100644
index 0000000..80c352c
--- /dev/null
+++ b/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/app/src/androidTest/java/com/calebfontenot/problem2_calebfontenot/ExampleInstrumentedTest.java
@@ -0,0 +1,26 @@
+package com.calebfontenot.problem2_calebfontenot;
+
+import android.content.Context;
+
+import androidx.test.platform.app.InstrumentationRegistry;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import static org.junit.Assert.*;
+
+/**
+ * Instrumented test, which will execute on an Android device.
+ *
+ * @see Testing documentation
+ */
+@RunWith(AndroidJUnit4.class)
+public class ExampleInstrumentedTest {
+ @Test
+ public void useAppContext() {
+ // Context of the app under test.
+ Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext();
+ assertEquals("com.calebfontenot.problem1_calebfontenot", appContext.getPackageName());
+ }
+}
\ No newline at end of file
diff --git a/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/app/src/main/AndroidManifest.xml b/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/app/src/main/AndroidManifest.xml
new file mode 100644
index 0000000..15f7ffd
--- /dev/null
+++ b/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/app/src/main/AndroidManifest.xml
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/app/src/main/java/com/calebfontenot/problem2_calebfontenot/Activity1.java b/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/app/src/main/java/com/calebfontenot/problem2_calebfontenot/Activity1.java
new file mode 100644
index 0000000..002e4a0
--- /dev/null
+++ b/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/app/src/main/java/com/calebfontenot/problem2_calebfontenot/Activity1.java
@@ -0,0 +1,59 @@
+package com.calebfontenot.problem2_calebfontenot;
+
+import android.content.Intent;
+import android.os.Bundle;
+
+import androidx.activity.EdgeToEdge;
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.core.graphics.Insets;
+import androidx.core.view.ViewCompat;
+import androidx.core.view.WindowInsetsCompat;
+
+import android.view.View;
+import android.widget.Button;
+import android.widget.TextView;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.UUID;
+
+public class Activity1 extends AppCompatActivity {
+ TextView uuidTextView;
+ Button passDataButton;
+ DataSingleton data;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ EdgeToEdge.enable(this);
+ setContentView(R.layout.activity1);
+ ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.activity1), (v, insets) -> {
+ Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars());
+ v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom);
+ return insets;
+ });
+ Bundle extras = getIntent().getExtras();
+ data = DataSingleton.getInstance();
+
+ uuidTextView = this.findViewById(R.id.textViewUUID);
+ passDataButton = this.findViewById(R.id.passDataButton);
+
+ // Populate Map
+ Map keyMap = new HashMap<>();
+ for (int i = 0; i < 100; ++i) {
+ String key = "key" + i;
+ UUID uuid = UUID.randomUUID();
+ keyMap.put(key, uuid);
+ }
+ data.setUuidMap(keyMap);
+
+ passDataButton.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ Intent i = new Intent(Activity1.this, Activity2.class);
+ startActivity(i);
+ }
+ });
+
+ }
+}
\ No newline at end of file
diff --git a/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/app/src/main/java/com/calebfontenot/problem2_calebfontenot/Activity2.java b/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/app/src/main/java/com/calebfontenot/problem2_calebfontenot/Activity2.java
new file mode 100644
index 0000000..a00abcf
--- /dev/null
+++ b/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/app/src/main/java/com/calebfontenot/problem2_calebfontenot/Activity2.java
@@ -0,0 +1,50 @@
+package com.calebfontenot.problem2_calebfontenot;
+
+import android.content.Intent;
+import android.os.Bundle;
+import android.view.View;
+import android.widget.Button;
+import android.widget.TextView;
+
+import androidx.activity.EdgeToEdge;
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.core.graphics.Insets;
+import androidx.core.view.ViewCompat;
+import androidx.core.view.WindowInsetsCompat;
+
+import java.util.UUID;
+
+public class Activity2 extends AppCompatActivity {
+ TextView uuidTextView;
+ Button passDataButton;
+ DataSingleton data;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ EdgeToEdge.enable(this);
+ setContentView(R.layout.activity_2);
+ ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main), (v, insets) -> {
+ Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars());
+ v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom);
+ return insets;
+ });
+ Bundle extras = getIntent().getExtras();
+ data = DataSingleton.getInstance();
+ passDataButton = this.findViewById(R.id.passDataButton);
+ uuidTextView = this.findViewById(R.id.textViewUUID);
+
+ passDataButton.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ String mapContents = "";
+ for (int i = 0; i < data.getMap().size(); ++i) {
+ mapContents += "key: " + "key" + i;
+ mapContents += ", ";
+ mapContents += "value:" + data.getMap().get("key" + i) + "\n";
+ }
+ uuidTextView.setText(mapContents);
+ }
+ });
+ }
+}
\ No newline at end of file
diff --git a/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/app/src/main/java/com/calebfontenot/problem2_calebfontenot/DataSingleton.java b/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/app/src/main/java/com/calebfontenot/problem2_calebfontenot/DataSingleton.java
new file mode 100644
index 0000000..da890ad
--- /dev/null
+++ b/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/app/src/main/java/com/calebfontenot/problem2_calebfontenot/DataSingleton.java
@@ -0,0 +1,33 @@
+package com.calebfontenot.problem2_calebfontenot;
+
+import java.util.Map;
+import java.util.UUID;
+
+public class DataSingleton {
+ private static volatile DataSingleton INSTANCE = null;
+ private DataSingleton() {}
+ public static DataSingleton getInstance() {
+ if (INSTANCE == null) {
+ synchronized (DataSingleton.class) {
+ if (INSTANCE == null) {
+ INSTANCE = new DataSingleton();
+ }
+ }
+ }
+ return INSTANCE;
+ }
+ Map uuidMap;
+
+ public Map getMap() {
+ return uuidMap;
+ }
+
+ public void setUuidMap(Map uuidMap) {
+ this.uuidMap = uuidMap;
+ }
+
+ @Override
+ public String toString() {
+ return uuidMap.toString();
+ }
+}
diff --git a/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/app/src/main/res/drawable/ic_launcher_background.xml b/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/app/src/main/res/drawable/ic_launcher_background.xml
new file mode 100644
index 0000000..07d5da9
--- /dev/null
+++ b/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/app/src/main/res/drawable/ic_launcher_background.xml
@@ -0,0 +1,170 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/app/src/main/res/drawable/ic_launcher_foreground.xml b/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/app/src/main/res/drawable/ic_launcher_foreground.xml
new file mode 100644
index 0000000..2b068d1
--- /dev/null
+++ b/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/app/src/main/res/drawable/ic_launcher_foreground.xml
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/app/src/main/res/layout/activity1.xml b/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/app/src/main/res/layout/activity1.xml
new file mode 100644
index 0000000..55d0bd8
--- /dev/null
+++ b/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/app/src/main/res/layout/activity1.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/app/src/main/res/layout/activity_2.xml b/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/app/src/main/res/layout/activity_2.xml
new file mode 100644
index 0000000..ce52d26
--- /dev/null
+++ b/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/app/src/main/res/layout/activity_2.xml
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
new file mode 100644
index 0000000..6f3b755
--- /dev/null
+++ b/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
new file mode 100644
index 0000000..6f3b755
--- /dev/null
+++ b/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/app/src/main/res/mipmap-hdpi/ic_launcher.webp b/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/app/src/main/res/mipmap-hdpi/ic_launcher.webp
new file mode 100644
index 0000000..c209e78
Binary files /dev/null and b/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/app/src/main/res/mipmap-hdpi/ic_launcher.webp differ
diff --git a/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp b/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp
new file mode 100644
index 0000000..b2dfe3d
Binary files /dev/null and b/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp differ
diff --git a/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/app/src/main/res/mipmap-mdpi/ic_launcher.webp b/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/app/src/main/res/mipmap-mdpi/ic_launcher.webp
new file mode 100644
index 0000000..4f0f1d6
Binary files /dev/null and b/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/app/src/main/res/mipmap-mdpi/ic_launcher.webp differ
diff --git a/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp b/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp
new file mode 100644
index 0000000..62b611d
Binary files /dev/null and b/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp differ
diff --git a/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/app/src/main/res/mipmap-xhdpi/ic_launcher.webp b/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/app/src/main/res/mipmap-xhdpi/ic_launcher.webp
new file mode 100644
index 0000000..948a307
Binary files /dev/null and b/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/app/src/main/res/mipmap-xhdpi/ic_launcher.webp differ
diff --git a/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp b/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp
new file mode 100644
index 0000000..1b9a695
Binary files /dev/null and b/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp differ
diff --git a/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp b/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp
new file mode 100644
index 0000000..28d4b77
Binary files /dev/null and b/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp differ
diff --git a/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp b/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp
new file mode 100644
index 0000000..9287f50
Binary files /dev/null and b/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp differ
diff --git a/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp b/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp
new file mode 100644
index 0000000..aa7d642
Binary files /dev/null and b/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp differ
diff --git a/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp b/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp
new file mode 100644
index 0000000..9126ae3
Binary files /dev/null and b/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp differ
diff --git a/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/app/src/main/res/values-night/themes.xml b/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/app/src/main/res/values-night/themes.xml
new file mode 100644
index 0000000..21beaf2
--- /dev/null
+++ b/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/app/src/main/res/values-night/themes.xml
@@ -0,0 +1,7 @@
+
+
+
+
\ No newline at end of file
diff --git a/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/app/src/main/res/values/colors.xml b/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/app/src/main/res/values/colors.xml
new file mode 100644
index 0000000..c8524cd
--- /dev/null
+++ b/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/app/src/main/res/values/colors.xml
@@ -0,0 +1,5 @@
+
+
+ #FF000000
+ #FFFFFFFF
+
\ No newline at end of file
diff --git a/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/app/src/main/res/values/strings.xml b/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/app/src/main/res/values/strings.xml
new file mode 100644
index 0000000..52566f4
--- /dev/null
+++ b/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/app/src/main/res/values/strings.xml
@@ -0,0 +1,3 @@
+
+ Problem1_CalebFontenot
+
\ No newline at end of file
diff --git a/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/app/src/main/res/values/themes.xml b/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/app/src/main/res/values/themes.xml
new file mode 100644
index 0000000..dea640e
--- /dev/null
+++ b/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/app/src/main/res/values/themes.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/app/src/main/res/xml/backup_rules.xml b/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/app/src/main/res/xml/backup_rules.xml
new file mode 100644
index 0000000..fa0f996
--- /dev/null
+++ b/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/app/src/main/res/xml/backup_rules.xml
@@ -0,0 +1,13 @@
+
+
+
+
\ No newline at end of file
diff --git a/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/app/src/main/res/xml/data_extraction_rules.xml b/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/app/src/main/res/xml/data_extraction_rules.xml
new file mode 100644
index 0000000..9ee9997
--- /dev/null
+++ b/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/app/src/main/res/xml/data_extraction_rules.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/app/src/test/java/com/calebfontenot/problem2_calebfontenot/ExampleUnitTest.java b/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/app/src/test/java/com/calebfontenot/problem2_calebfontenot/ExampleUnitTest.java
new file mode 100644
index 0000000..9d303ad
--- /dev/null
+++ b/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/app/src/test/java/com/calebfontenot/problem2_calebfontenot/ExampleUnitTest.java
@@ -0,0 +1,17 @@
+package com.calebfontenot.problem2_calebfontenot;
+
+import org.junit.Test;
+
+import static org.junit.Assert.*;
+
+/**
+ * Example local unit test, which will execute on the development machine (host).
+ *
+ * @see Testing documentation
+ */
+public class ExampleUnitTest {
+ @Test
+ public void addition_isCorrect() {
+ assertEquals(4, 2 + 2);
+ }
+}
\ No newline at end of file
diff --git a/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/build.gradle.kts b/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/build.gradle.kts
new file mode 100644
index 0000000..2bbd2a9
--- /dev/null
+++ b/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/build.gradle.kts
@@ -0,0 +1,4 @@
+// Top-level build file where you can add configuration options common to all sub-projects/modules.
+plugins {
+ alias(libs.plugins.androidApplication) apply false
+}
\ No newline at end of file
diff --git a/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/gradle.properties b/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/gradle.properties
new file mode 100644
index 0000000..4387edc
--- /dev/null
+++ b/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/gradle.properties
@@ -0,0 +1,21 @@
+# Project-wide Gradle settings.
+# IDE (e.g. Android Studio) users:
+# Gradle settings configured through the IDE *will override*
+# any settings specified in this file.
+# For more details on how to configure your build environment visit
+# http://www.gradle.org/docs/current/userguide/build_environment.html
+# Specifies the JVM arguments used for the daemon process.
+# The setting is particularly useful for tweaking memory settings.
+org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8
+# When configured, Gradle will run in incubating parallel mode.
+# This option should only be used with decoupled projects. For more details, visit
+# https://developer.android.com/r/tools/gradle-multi-project-decoupled-projects
+# org.gradle.parallel=true
+# AndroidX package structure to make it clearer which packages are bundled with the
+# Android operating system, and which are packaged with your app's APK
+# https://developer.android.com/topic/libraries/support-library/androidx-rn
+android.useAndroidX=true
+# Enables namespacing of each library's R class so that its R class includes only the
+# resources declared in the library itself and none from the library's dependencies,
+# thereby reducing the size of the R class for that library
+android.nonTransitiveRClass=true
\ No newline at end of file
diff --git a/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/gradle/libs.versions.toml b/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/gradle/libs.versions.toml
new file mode 100644
index 0000000..4c0cc21
--- /dev/null
+++ b/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/gradle/libs.versions.toml
@@ -0,0 +1,22 @@
+[versions]
+agp = "8.3.0"
+junit = "4.13.2"
+junitVersion = "1.1.5"
+espressoCore = "3.5.1"
+appcompat = "1.6.1"
+material = "1.11.0"
+activity = "1.8.0"
+constraintlayout = "2.1.4"
+
+[libraries]
+junit = { group = "junit", name = "junit", version.ref = "junit" }
+ext-junit = { group = "androidx.test.ext", name = "junit", version.ref = "junitVersion" }
+espresso-core = { group = "androidx.test.espresso", name = "espresso-core", version.ref = "espressoCore" }
+appcompat = { group = "androidx.appcompat", name = "appcompat", version.ref = "appcompat" }
+material = { group = "com.google.android.material", name = "material", version.ref = "material" }
+activity = { group = "androidx.activity", name = "activity", version.ref = "activity" }
+constraintlayout = { group = "androidx.constraintlayout", name = "constraintlayout", version.ref = "constraintlayout" }
+
+[plugins]
+androidApplication = { id = "com.android.application", version.ref = "agp" }
+
diff --git a/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/gradle/wrapper/gradle-wrapper.jar b/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/gradle/wrapper/gradle-wrapper.jar
new file mode 100644
index 0000000..e708b1c
Binary files /dev/null and b/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/gradle/wrapper/gradle-wrapper.properties b/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/gradle/wrapper/gradle-wrapper.properties
new file mode 100644
index 0000000..81934cc
--- /dev/null
+++ b/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/gradle/wrapper/gradle-wrapper.properties
@@ -0,0 +1,6 @@
+#Wed Mar 13 09:24:00 CDT 2024
+distributionBase=GRADLE_USER_HOME
+distributionPath=wrapper/dists
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.4-bin.zip
+zipStoreBase=GRADLE_USER_HOME
+zipStorePath=wrapper/dists
diff --git a/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/gradlew b/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/gradlew
new file mode 100755
index 0000000..4f906e0
--- /dev/null
+++ b/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/gradlew
@@ -0,0 +1,185 @@
+#!/usr/bin/env sh
+
+#
+# Copyright 2015 the original author or authors.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+##############################################################################
+##
+## Gradle start up script for UN*X
+##
+##############################################################################
+
+# Attempt to set APP_HOME
+# Resolve links: $0 may be a link
+PRG="$0"
+# Need this for relative symlinks.
+while [ -h "$PRG" ] ; do
+ ls=`ls -ld "$PRG"`
+ link=`expr "$ls" : '.*-> \(.*\)$'`
+ if expr "$link" : '/.*' > /dev/null; then
+ PRG="$link"
+ else
+ PRG=`dirname "$PRG"`"/$link"
+ fi
+done
+SAVED="`pwd`"
+cd "`dirname \"$PRG\"`/" >/dev/null
+APP_HOME="`pwd -P`"
+cd "$SAVED" >/dev/null
+
+APP_NAME="Gradle"
+APP_BASE_NAME=`basename "$0"`
+
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
+
+# Use the maximum available, or set MAX_FD != -1 to use that value.
+MAX_FD="maximum"
+
+warn () {
+ echo "$*"
+}
+
+die () {
+ echo
+ echo "$*"
+ echo
+ exit 1
+}
+
+# OS specific support (must be 'true' or 'false').
+cygwin=false
+msys=false
+darwin=false
+nonstop=false
+case "`uname`" in
+ CYGWIN* )
+ cygwin=true
+ ;;
+ Darwin* )
+ darwin=true
+ ;;
+ MINGW* )
+ msys=true
+ ;;
+ NONSTOP* )
+ nonstop=true
+ ;;
+esac
+
+CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
+
+
+# Determine the Java command to use to start the JVM.
+if [ -n "$JAVA_HOME" ] ; then
+ if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+ # IBM's JDK on AIX uses strange locations for the executables
+ JAVACMD="$JAVA_HOME/jre/sh/java"
+ else
+ JAVACMD="$JAVA_HOME/bin/java"
+ fi
+ if [ ! -x "$JAVACMD" ] ; then
+ die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+ fi
+else
+ JAVACMD="java"
+ which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+fi
+
+# Increase the maximum file descriptors if we can.
+if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
+ MAX_FD_LIMIT=`ulimit -H -n`
+ if [ $? -eq 0 ] ; then
+ if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
+ MAX_FD="$MAX_FD_LIMIT"
+ fi
+ ulimit -n $MAX_FD
+ if [ $? -ne 0 ] ; then
+ warn "Could not set maximum file descriptor limit: $MAX_FD"
+ fi
+ else
+ warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
+ fi
+fi
+
+# For Darwin, add options to specify how the application appears in the dock
+if $darwin; then
+ GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
+fi
+
+# For Cygwin or MSYS, switch paths to Windows format before running java
+if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then
+ APP_HOME=`cygpath --path --mixed "$APP_HOME"`
+ CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
+
+ JAVACMD=`cygpath --unix "$JAVACMD"`
+
+ # We build the pattern for arguments to be converted via cygpath
+ ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
+ SEP=""
+ for dir in $ROOTDIRSRAW ; do
+ ROOTDIRS="$ROOTDIRS$SEP$dir"
+ SEP="|"
+ done
+ OURCYGPATTERN="(^($ROOTDIRS))"
+ # Add a user-defined pattern to the cygpath arguments
+ if [ "$GRADLE_CYGPATTERN" != "" ] ; then
+ OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
+ fi
+ # Now convert the arguments - kludge to limit ourselves to /bin/sh
+ i=0
+ for arg in "$@" ; do
+ CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
+ CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
+
+ if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
+ eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
+ else
+ eval `echo args$i`="\"$arg\""
+ fi
+ i=`expr $i + 1`
+ done
+ case $i in
+ 0) set -- ;;
+ 1) set -- "$args0" ;;
+ 2) set -- "$args0" "$args1" ;;
+ 3) set -- "$args0" "$args1" "$args2" ;;
+ 4) set -- "$args0" "$args1" "$args2" "$args3" ;;
+ 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
+ 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
+ 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
+ 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
+ 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
+ esac
+fi
+
+# Escape application args
+save () {
+ for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
+ echo " "
+}
+APP_ARGS=`save "$@"`
+
+# Collect all arguments for the java command, following the shell quoting and substitution rules
+eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
+
+exec "$JAVACMD" "$@"
diff --git a/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/gradlew.bat b/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/gradlew.bat
new file mode 100644
index 0000000..ac1b06f
--- /dev/null
+++ b/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/gradlew.bat
@@ -0,0 +1,89 @@
+@rem
+@rem Copyright 2015 the original author or authors.
+@rem
+@rem Licensed under the Apache License, Version 2.0 (the "License");
+@rem you may not use this file except in compliance with the License.
+@rem You may obtain a copy of the License at
+@rem
+@rem https://www.apache.org/licenses/LICENSE-2.0
+@rem
+@rem Unless required by applicable law or agreed to in writing, software
+@rem distributed under the License is distributed on an "AS IS" BASIS,
+@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+@rem See the License for the specific language governing permissions and
+@rem limitations under the License.
+@rem
+
+@if "%DEBUG%" == "" @echo off
+@rem ##########################################################################
+@rem
+@rem Gradle startup script for Windows
+@rem
+@rem ##########################################################################
+
+@rem Set local scope for the variables with windows NT shell
+if "%OS%"=="Windows_NT" setlocal
+
+set DIRNAME=%~dp0
+if "%DIRNAME%" == "" set DIRNAME=.
+set APP_BASE_NAME=%~n0
+set APP_HOME=%DIRNAME%
+
+@rem Resolve any "." and ".." in APP_HOME to make it shorter.
+for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
+
+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
+
+@rem Find java.exe
+if defined JAVA_HOME goto findJavaFromJavaHome
+
+set JAVA_EXE=java.exe
+%JAVA_EXE% -version >NUL 2>&1
+if "%ERRORLEVEL%" == "0" goto execute
+
+echo.
+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:findJavaFromJavaHome
+set JAVA_HOME=%JAVA_HOME:"=%
+set JAVA_EXE=%JAVA_HOME%/bin/java.exe
+
+if exist "%JAVA_EXE%" goto execute
+
+echo.
+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:execute
+@rem Setup the command line
+
+set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
+
+
+@rem Execute Gradle
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
+
+:end
+@rem End local scope for the variables with windows NT shell
+if "%ERRORLEVEL%"=="0" goto mainEnd
+
+:fail
+rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
+rem the _cmd.exe /c_ return code!
+if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
+exit /b 1
+
+:mainEnd
+if "%OS%"=="Windows_NT" endlocal
+
+:omega
diff --git a/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/settings.gradle.kts b/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/settings.gradle.kts
new file mode 100644
index 0000000..a9e8a17
--- /dev/null
+++ b/Quizzes/ProgrammingExam1/Problem2_CalebFontenot/settings.gradle.kts
@@ -0,0 +1,23 @@
+pluginManagement {
+ repositories {
+ google {
+ content {
+ includeGroupByRegex("com\\.android.*")
+ includeGroupByRegex("com\\.google.*")
+ includeGroupByRegex("androidx.*")
+ }
+ }
+ mavenCentral()
+ gradlePluginPortal()
+ }
+}
+dependencyResolutionManagement {
+ repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
+ repositories {
+ google()
+ mavenCentral()
+ }
+}
+
+rootProject.name = "Problem2_CalebFontenot"
+include(":app")
diff --git a/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/.gitignore b/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/.gitignore
new file mode 100644
index 0000000..aa724b7
--- /dev/null
+++ b/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/.gitignore
@@ -0,0 +1,15 @@
+*.iml
+.gradle
+/local.properties
+/.idea/caches
+/.idea/libraries
+/.idea/modules.xml
+/.idea/workspace.xml
+/.idea/navEditor.xml
+/.idea/assetWizardSettings.xml
+.DS_Store
+/build
+/captures
+.externalNativeBuild
+.cxx
+local.properties
diff --git a/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/.idea/appInsightsSettings.xml b/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/.idea/appInsightsSettings.xml
new file mode 100644
index 0000000..371f2e2
--- /dev/null
+++ b/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/.idea/appInsightsSettings.xml
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/.idea/codeStyles b/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/.idea/codeStyles
new file mode 100644
index 0000000..e2e415d
--- /dev/null
+++ b/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/.idea/codeStyles
@@ -0,0 +1,119 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/.idea/gradle.xml b/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/.idea/gradle.xml
new file mode 100644
index 0000000..0897082
--- /dev/null
+++ b/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/.idea/gradle.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/.idea/migrations.xml b/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/.idea/migrations.xml
new file mode 100644
index 0000000..f8051a6
--- /dev/null
+++ b/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/.idea/migrations.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/.idea/misc.xml b/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/.idea/misc.xml
new file mode 100644
index 0000000..8978d23
--- /dev/null
+++ b/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/.idea/misc.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/.idea/vcs.xml b/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/.idea/vcs.xml
new file mode 100644
index 0000000..d23592a
--- /dev/null
+++ b/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/.idea/vcs.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/app/.gitignore b/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/app/.gitignore
new file mode 100644
index 0000000..42afabf
--- /dev/null
+++ b/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/app/.gitignore
@@ -0,0 +1 @@
+/build
\ No newline at end of file
diff --git a/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/app/build.gradle.kts b/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/app/build.gradle.kts
new file mode 100644
index 0000000..2f5e05e
--- /dev/null
+++ b/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/app/build.gradle.kts
@@ -0,0 +1,44 @@
+plugins {
+ alias(libs.plugins.androidApplication)
+}
+
+android {
+ namespace = "com.calebfontenot.problem3_calebfontenot"
+ compileSdk = 34
+
+ defaultConfig {
+ applicationId = "com.calebfontenot.problem3_calebfontenot"
+ minSdk = 24
+ targetSdk = 34
+ versionCode = 1
+ versionName = "1.0"
+
+ testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
+ }
+
+ buildTypes {
+ release {
+ isMinifyEnabled = false
+ proguardFiles(
+ getDefaultProguardFile("proguard-android-optimize.txt"),
+ "proguard-rules.pro"
+ )
+ }
+ }
+ compileOptions {
+ sourceCompatibility = JavaVersion.VERSION_1_8
+ targetCompatibility = JavaVersion.VERSION_1_8
+ }
+}
+
+dependencies {
+
+ implementation(libs.appcompat)
+ implementation(libs.material)
+ implementation(libs.activity)
+ implementation(libs.constraintlayout)
+ implementation(libs.recyclerview)
+ testImplementation(libs.junit)
+ androidTestImplementation(libs.ext.junit)
+ androidTestImplementation(libs.espresso.core)
+}
diff --git a/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/app/proguard-rules.pro b/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/app/proguard-rules.pro
new file mode 100644
index 0000000..481bb43
--- /dev/null
+++ b/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/app/proguard-rules.pro
@@ -0,0 +1,21 @@
+# Add project specific ProGuard rules here.
+# You can control the set of applied configuration files using the
+# proguardFiles setting in build.gradle.
+#
+# For more details, see
+# http://developer.android.com/guide/developing/tools/proguard.html
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+# public *;
+#}
+
+# Uncomment this to preserve the line number information for
+# debugging stack traces.
+#-keepattributes SourceFile,LineNumberTable
+
+# If you keep the line number information, uncomment this to
+# hide the original source file name.
+#-renamesourcefileattribute SourceFile
\ No newline at end of file
diff --git a/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/app/src/androidTest/java/com/calebfontenot/problem3_calebfontenot/ExampleInstrumentedTest.java b/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/app/src/androidTest/java/com/calebfontenot/problem3_calebfontenot/ExampleInstrumentedTest.java
new file mode 100644
index 0000000..c27b94c
--- /dev/null
+++ b/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/app/src/androidTest/java/com/calebfontenot/problem3_calebfontenot/ExampleInstrumentedTest.java
@@ -0,0 +1,26 @@
+package com.calebfontenot.problem3_calebfontenot;
+
+import android.content.Context;
+
+import androidx.test.platform.app.InstrumentationRegistry;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import static org.junit.Assert.*;
+
+/**
+ * Instrumented test, which will execute on an Android device.
+ *
+ * @see Testing documentation
+ */
+@RunWith(AndroidJUnit4.class)
+public class ExampleInstrumentedTest {
+ @Test
+ public void useAppContext() {
+ // Context of the app under test.
+ Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext();
+ assertEquals("com.calebfontenot.problem2_calebfontenot", appContext.getPackageName());
+ }
+}
\ No newline at end of file
diff --git a/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/app/src/main/AndroidManifest.xml b/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/app/src/main/AndroidManifest.xml
new file mode 100644
index 0000000..a93daa5
--- /dev/null
+++ b/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/app/src/main/AndroidManifest.xml
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/app/src/main/java/com/calebfontenot/problem3_calebfontenot/MainActivity.java b/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/app/src/main/java/com/calebfontenot/problem3_calebfontenot/MainActivity.java
new file mode 100644
index 0000000..e455895
--- /dev/null
+++ b/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/app/src/main/java/com/calebfontenot/problem3_calebfontenot/MainActivity.java
@@ -0,0 +1,38 @@
+package com.calebfontenot.problem3_calebfontenot;
+
+import android.os.Bundle;
+import android.view.View;
+
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.recyclerview.widget.LinearLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
+
+import java.util.ArrayList;
+import java.util.UUID;
+
+public class MainActivity extends AppCompatActivity {
+ static MyRecyclerViewAdapter adapter;
+ static ArrayList uuids;
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_main);
+
+ // data to populate the RecyclerView with
+ uuids = new ArrayList<>();
+ for (int i = 0; i < 3; ++i) {
+ uuids.add(String.valueOf(UUID.randomUUID()));
+ }
+
+ RecyclerView recyclerView = findViewById(R.id.rvUUID);
+ recyclerView.setLayoutManager(new LinearLayoutManager(this));
+ adapter = new MyRecyclerViewAdapter(this, uuids);
+ recyclerView.setAdapter(adapter);
+ }
+
+ public static void deleteItem(int position) {
+ uuids.remove(position);
+ adapter.notifyItemRemoved(position);
+ adapter.notifyItemRangeChanged(position, uuids.size());
+ }
+}
\ No newline at end of file
diff --git a/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/app/src/main/java/com/calebfontenot/problem3_calebfontenot/MyRecyclerViewAdapter.java b/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/app/src/main/java/com/calebfontenot/problem3_calebfontenot/MyRecyclerViewAdapter.java
new file mode 100644
index 0000000..82703eb
--- /dev/null
+++ b/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/app/src/main/java/com/calebfontenot/problem3_calebfontenot/MyRecyclerViewAdapter.java
@@ -0,0 +1,54 @@
+package com.calebfontenot.problem3_calebfontenot;
+
+import android.content.Context;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.TextView;
+
+import androidx.annotation.NonNull;
+import androidx.recyclerview.widget.*;
+
+import java.util.List;
+
+public class MyRecyclerViewAdapter extends RecyclerView.Adapter {
+ private List mData;
+ private LayoutInflater mInflater;
+
+
+ MyRecyclerViewAdapter(Context context, List data) {
+ this.mInflater = LayoutInflater.from(context);
+ this.mData = data;
+ }
+
+ @NonNull
+ @Override
+ public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+ View view = mInflater.inflate(R.layout.recyclerview_row, parent, false);
+ return new ViewHolder(view);
+ }
+
+ @Override
+ public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
+ String uuid = mData.get(position);
+ holder.myTextView.setText(uuid);
+ }
+
+ @Override
+ public int getItemCount() {
+ return mData.size();
+ }
+
+ public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
+ TextView myTextView;
+ public ViewHolder(View view) {
+ super(view);
+ myTextView = itemView.findViewById(R.id.tvUUID);
+ }
+
+ @Override
+ public void onClick(View v) {
+ MainActivity.deleteItem(getAbsoluteAdapterPosition());
+ }
+ }
+}
diff --git a/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/app/src/main/res/drawable/ic_launcher_background.xml b/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/app/src/main/res/drawable/ic_launcher_background.xml
new file mode 100644
index 0000000..07d5da9
--- /dev/null
+++ b/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/app/src/main/res/drawable/ic_launcher_background.xml
@@ -0,0 +1,170 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/app/src/main/res/drawable/ic_launcher_foreground.xml b/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/app/src/main/res/drawable/ic_launcher_foreground.xml
new file mode 100644
index 0000000..2b068d1
--- /dev/null
+++ b/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/app/src/main/res/drawable/ic_launcher_foreground.xml
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/app/src/main/res/layout/activity_main.xml b/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/app/src/main/res/layout/activity_main.xml
new file mode 100644
index 0000000..58fba74
--- /dev/null
+++ b/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/app/src/main/res/layout/activity_main.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/app/src/main/res/layout/recyclerview_row.xml b/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/app/src/main/res/layout/recyclerview_row.xml
new file mode 100644
index 0000000..f61d876
--- /dev/null
+++ b/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/app/src/main/res/layout/recyclerview_row.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
diff --git a/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
new file mode 100644
index 0000000..6f3b755
--- /dev/null
+++ b/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
new file mode 100644
index 0000000..6f3b755
--- /dev/null
+++ b/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/app/src/main/res/mipmap-hdpi/ic_launcher.webp b/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/app/src/main/res/mipmap-hdpi/ic_launcher.webp
new file mode 100644
index 0000000..c209e78
Binary files /dev/null and b/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/app/src/main/res/mipmap-hdpi/ic_launcher.webp differ
diff --git a/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp b/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp
new file mode 100644
index 0000000..b2dfe3d
Binary files /dev/null and b/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp differ
diff --git a/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/app/src/main/res/mipmap-mdpi/ic_launcher.webp b/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/app/src/main/res/mipmap-mdpi/ic_launcher.webp
new file mode 100644
index 0000000..4f0f1d6
Binary files /dev/null and b/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/app/src/main/res/mipmap-mdpi/ic_launcher.webp differ
diff --git a/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp b/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp
new file mode 100644
index 0000000..62b611d
Binary files /dev/null and b/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp differ
diff --git a/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/app/src/main/res/mipmap-xhdpi/ic_launcher.webp b/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/app/src/main/res/mipmap-xhdpi/ic_launcher.webp
new file mode 100644
index 0000000..948a307
Binary files /dev/null and b/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/app/src/main/res/mipmap-xhdpi/ic_launcher.webp differ
diff --git a/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp b/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp
new file mode 100644
index 0000000..1b9a695
Binary files /dev/null and b/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp differ
diff --git a/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp b/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp
new file mode 100644
index 0000000..28d4b77
Binary files /dev/null and b/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp differ
diff --git a/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp b/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp
new file mode 100644
index 0000000..9287f50
Binary files /dev/null and b/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp differ
diff --git a/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp b/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp
new file mode 100644
index 0000000..aa7d642
Binary files /dev/null and b/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp differ
diff --git a/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp b/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp
new file mode 100644
index 0000000..9126ae3
Binary files /dev/null and b/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp differ
diff --git a/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/app/src/main/res/values-night/themes.xml b/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/app/src/main/res/values-night/themes.xml
new file mode 100644
index 0000000..cf26e73
--- /dev/null
+++ b/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/app/src/main/res/values-night/themes.xml
@@ -0,0 +1,7 @@
+
+
+
+
\ No newline at end of file
diff --git a/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/app/src/main/res/values/colors.xml b/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/app/src/main/res/values/colors.xml
new file mode 100644
index 0000000..c8524cd
--- /dev/null
+++ b/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/app/src/main/res/values/colors.xml
@@ -0,0 +1,5 @@
+
+
+ #FF000000
+ #FFFFFFFF
+
\ No newline at end of file
diff --git a/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/app/src/main/res/values/strings.xml b/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/app/src/main/res/values/strings.xml
new file mode 100644
index 0000000..af4b3ff
--- /dev/null
+++ b/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/app/src/main/res/values/strings.xml
@@ -0,0 +1,3 @@
+
+ Problem2_CalebFontenot
+
\ No newline at end of file
diff --git a/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/app/src/main/res/values/themes.xml b/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/app/src/main/res/values/themes.xml
new file mode 100644
index 0000000..edb706d
--- /dev/null
+++ b/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/app/src/main/res/values/themes.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/app/src/main/res/xml/backup_rules.xml b/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/app/src/main/res/xml/backup_rules.xml
new file mode 100644
index 0000000..fa0f996
--- /dev/null
+++ b/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/app/src/main/res/xml/backup_rules.xml
@@ -0,0 +1,13 @@
+
+
+
+
\ No newline at end of file
diff --git a/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/app/src/main/res/xml/data_extraction_rules.xml b/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/app/src/main/res/xml/data_extraction_rules.xml
new file mode 100644
index 0000000..9ee9997
--- /dev/null
+++ b/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/app/src/main/res/xml/data_extraction_rules.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/app/src/test/java/com/calebfontenot/problem3_calebfontenot/ExampleUnitTest.java b/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/app/src/test/java/com/calebfontenot/problem3_calebfontenot/ExampleUnitTest.java
new file mode 100644
index 0000000..a27d18e
--- /dev/null
+++ b/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/app/src/test/java/com/calebfontenot/problem3_calebfontenot/ExampleUnitTest.java
@@ -0,0 +1,17 @@
+package com.calebfontenot.problem3_calebfontenot;
+
+import org.junit.Test;
+
+import static org.junit.Assert.*;
+
+/**
+ * Example local unit test, which will execute on the development machine (host).
+ *
+ * @see Testing documentation
+ */
+public class ExampleUnitTest {
+ @Test
+ public void addition_isCorrect() {
+ assertEquals(4, 2 + 2);
+ }
+}
\ No newline at end of file
diff --git a/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/build.gradle.kts b/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/build.gradle.kts
new file mode 100644
index 0000000..2bbd2a9
--- /dev/null
+++ b/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/build.gradle.kts
@@ -0,0 +1,4 @@
+// Top-level build file where you can add configuration options common to all sub-projects/modules.
+plugins {
+ alias(libs.plugins.androidApplication) apply false
+}
\ No newline at end of file
diff --git a/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/gradle.properties b/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/gradle.properties
new file mode 100644
index 0000000..4387edc
--- /dev/null
+++ b/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/gradle.properties
@@ -0,0 +1,21 @@
+# Project-wide Gradle settings.
+# IDE (e.g. Android Studio) users:
+# Gradle settings configured through the IDE *will override*
+# any settings specified in this file.
+# For more details on how to configure your build environment visit
+# http://www.gradle.org/docs/current/userguide/build_environment.html
+# Specifies the JVM arguments used for the daemon process.
+# The setting is particularly useful for tweaking memory settings.
+org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8
+# When configured, Gradle will run in incubating parallel mode.
+# This option should only be used with decoupled projects. For more details, visit
+# https://developer.android.com/r/tools/gradle-multi-project-decoupled-projects
+# org.gradle.parallel=true
+# AndroidX package structure to make it clearer which packages are bundled with the
+# Android operating system, and which are packaged with your app's APK
+# https://developer.android.com/topic/libraries/support-library/androidx-rn
+android.useAndroidX=true
+# Enables namespacing of each library's R class so that its R class includes only the
+# resources declared in the library itself and none from the library's dependencies,
+# thereby reducing the size of the R class for that library
+android.nonTransitiveRClass=true
\ No newline at end of file
diff --git a/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/gradle/libs.versions.toml b/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/gradle/libs.versions.toml
new file mode 100644
index 0000000..e12dad2
--- /dev/null
+++ b/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/gradle/libs.versions.toml
@@ -0,0 +1,24 @@
+[versions]
+agp = "8.3.0"
+junit = "4.13.2"
+junitVersion = "1.1.5"
+espressoCore = "3.5.1"
+appcompat = "1.6.1"
+material = "1.11.0"
+activity = "1.8.0"
+constraintlayout = "2.1.4"
+recyclerview = "1.3.2"
+
+[libraries]
+junit = { group = "junit", name = "junit", version.ref = "junit" }
+ext-junit = { group = "androidx.test.ext", name = "junit", version.ref = "junitVersion" }
+espresso-core = { group = "androidx.test.espresso", name = "espresso-core", version.ref = "espressoCore" }
+appcompat = { group = "androidx.appcompat", name = "appcompat", version.ref = "appcompat" }
+material = { group = "com.google.android.material", name = "material", version.ref = "material" }
+activity = { group = "androidx.activity", name = "activity", version.ref = "activity" }
+constraintlayout = { group = "androidx.constraintlayout", name = "constraintlayout", version.ref = "constraintlayout" }
+recyclerview = { group = "androidx.recyclerview", name = "recyclerview", version.ref = "recyclerview" }
+
+[plugins]
+androidApplication = { id = "com.android.application", version.ref = "agp" }
+
diff --git a/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/gradle/wrapper/gradle-wrapper.jar b/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/gradle/wrapper/gradle-wrapper.jar
new file mode 100644
index 0000000..e708b1c
Binary files /dev/null and b/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/gradle/wrapper/gradle-wrapper.properties b/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/gradle/wrapper/gradle-wrapper.properties
new file mode 100644
index 0000000..92c8907
--- /dev/null
+++ b/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/gradle/wrapper/gradle-wrapper.properties
@@ -0,0 +1,6 @@
+#Mon Mar 11 09:32:43 CDT 2024
+distributionBase=GRADLE_USER_HOME
+distributionPath=wrapper/dists
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.4-bin.zip
+zipStoreBase=GRADLE_USER_HOME
+zipStorePath=wrapper/dists
diff --git a/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/gradlew b/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/gradlew
new file mode 100755
index 0000000..4f906e0
--- /dev/null
+++ b/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/gradlew
@@ -0,0 +1,185 @@
+#!/usr/bin/env sh
+
+#
+# Copyright 2015 the original author or authors.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+##############################################################################
+##
+## Gradle start up script for UN*X
+##
+##############################################################################
+
+# Attempt to set APP_HOME
+# Resolve links: $0 may be a link
+PRG="$0"
+# Need this for relative symlinks.
+while [ -h "$PRG" ] ; do
+ ls=`ls -ld "$PRG"`
+ link=`expr "$ls" : '.*-> \(.*\)$'`
+ if expr "$link" : '/.*' > /dev/null; then
+ PRG="$link"
+ else
+ PRG=`dirname "$PRG"`"/$link"
+ fi
+done
+SAVED="`pwd`"
+cd "`dirname \"$PRG\"`/" >/dev/null
+APP_HOME="`pwd -P`"
+cd "$SAVED" >/dev/null
+
+APP_NAME="Gradle"
+APP_BASE_NAME=`basename "$0"`
+
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
+
+# Use the maximum available, or set MAX_FD != -1 to use that value.
+MAX_FD="maximum"
+
+warn () {
+ echo "$*"
+}
+
+die () {
+ echo
+ echo "$*"
+ echo
+ exit 1
+}
+
+# OS specific support (must be 'true' or 'false').
+cygwin=false
+msys=false
+darwin=false
+nonstop=false
+case "`uname`" in
+ CYGWIN* )
+ cygwin=true
+ ;;
+ Darwin* )
+ darwin=true
+ ;;
+ MINGW* )
+ msys=true
+ ;;
+ NONSTOP* )
+ nonstop=true
+ ;;
+esac
+
+CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
+
+
+# Determine the Java command to use to start the JVM.
+if [ -n "$JAVA_HOME" ] ; then
+ if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+ # IBM's JDK on AIX uses strange locations for the executables
+ JAVACMD="$JAVA_HOME/jre/sh/java"
+ else
+ JAVACMD="$JAVA_HOME/bin/java"
+ fi
+ if [ ! -x "$JAVACMD" ] ; then
+ die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+ fi
+else
+ JAVACMD="java"
+ which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+fi
+
+# Increase the maximum file descriptors if we can.
+if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
+ MAX_FD_LIMIT=`ulimit -H -n`
+ if [ $? -eq 0 ] ; then
+ if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
+ MAX_FD="$MAX_FD_LIMIT"
+ fi
+ ulimit -n $MAX_FD
+ if [ $? -ne 0 ] ; then
+ warn "Could not set maximum file descriptor limit: $MAX_FD"
+ fi
+ else
+ warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
+ fi
+fi
+
+# For Darwin, add options to specify how the application appears in the dock
+if $darwin; then
+ GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
+fi
+
+# For Cygwin or MSYS, switch paths to Windows format before running java
+if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then
+ APP_HOME=`cygpath --path --mixed "$APP_HOME"`
+ CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
+
+ JAVACMD=`cygpath --unix "$JAVACMD"`
+
+ # We build the pattern for arguments to be converted via cygpath
+ ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
+ SEP=""
+ for dir in $ROOTDIRSRAW ; do
+ ROOTDIRS="$ROOTDIRS$SEP$dir"
+ SEP="|"
+ done
+ OURCYGPATTERN="(^($ROOTDIRS))"
+ # Add a user-defined pattern to the cygpath arguments
+ if [ "$GRADLE_CYGPATTERN" != "" ] ; then
+ OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
+ fi
+ # Now convert the arguments - kludge to limit ourselves to /bin/sh
+ i=0
+ for arg in "$@" ; do
+ CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
+ CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
+
+ if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
+ eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
+ else
+ eval `echo args$i`="\"$arg\""
+ fi
+ i=`expr $i + 1`
+ done
+ case $i in
+ 0) set -- ;;
+ 1) set -- "$args0" ;;
+ 2) set -- "$args0" "$args1" ;;
+ 3) set -- "$args0" "$args1" "$args2" ;;
+ 4) set -- "$args0" "$args1" "$args2" "$args3" ;;
+ 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
+ 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
+ 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
+ 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
+ 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
+ esac
+fi
+
+# Escape application args
+save () {
+ for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
+ echo " "
+}
+APP_ARGS=`save "$@"`
+
+# Collect all arguments for the java command, following the shell quoting and substitution rules
+eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
+
+exec "$JAVACMD" "$@"
diff --git a/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/gradlew.bat b/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/gradlew.bat
new file mode 100644
index 0000000..ac1b06f
--- /dev/null
+++ b/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/gradlew.bat
@@ -0,0 +1,89 @@
+@rem
+@rem Copyright 2015 the original author or authors.
+@rem
+@rem Licensed under the Apache License, Version 2.0 (the "License");
+@rem you may not use this file except in compliance with the License.
+@rem You may obtain a copy of the License at
+@rem
+@rem https://www.apache.org/licenses/LICENSE-2.0
+@rem
+@rem Unless required by applicable law or agreed to in writing, software
+@rem distributed under the License is distributed on an "AS IS" BASIS,
+@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+@rem See the License for the specific language governing permissions and
+@rem limitations under the License.
+@rem
+
+@if "%DEBUG%" == "" @echo off
+@rem ##########################################################################
+@rem
+@rem Gradle startup script for Windows
+@rem
+@rem ##########################################################################
+
+@rem Set local scope for the variables with windows NT shell
+if "%OS%"=="Windows_NT" setlocal
+
+set DIRNAME=%~dp0
+if "%DIRNAME%" == "" set DIRNAME=.
+set APP_BASE_NAME=%~n0
+set APP_HOME=%DIRNAME%
+
+@rem Resolve any "." and ".." in APP_HOME to make it shorter.
+for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
+
+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
+
+@rem Find java.exe
+if defined JAVA_HOME goto findJavaFromJavaHome
+
+set JAVA_EXE=java.exe
+%JAVA_EXE% -version >NUL 2>&1
+if "%ERRORLEVEL%" == "0" goto execute
+
+echo.
+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:findJavaFromJavaHome
+set JAVA_HOME=%JAVA_HOME:"=%
+set JAVA_EXE=%JAVA_HOME%/bin/java.exe
+
+if exist "%JAVA_EXE%" goto execute
+
+echo.
+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:execute
+@rem Setup the command line
+
+set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
+
+
+@rem Execute Gradle
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
+
+:end
+@rem End local scope for the variables with windows NT shell
+if "%ERRORLEVEL%"=="0" goto mainEnd
+
+:fail
+rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
+rem the _cmd.exe /c_ return code!
+if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
+exit /b 1
+
+:mainEnd
+if "%OS%"=="Windows_NT" endlocal
+
+:omega
diff --git a/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/settings.gradle.kts b/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/settings.gradle.kts
new file mode 100644
index 0000000..a498d33
--- /dev/null
+++ b/Quizzes/ProgrammingExam1/Problem3_CalebFontenot/settings.gradle.kts
@@ -0,0 +1,24 @@
+pluginManagement {
+ repositories {
+ google {
+ content {
+ includeGroupByRegex("com\\.android.*")
+ includeGroupByRegex("com\\.google.*")
+ includeGroupByRegex("androidx.*")
+ }
+ }
+ mavenCentral()
+ gradlePluginPortal()
+ }
+}
+dependencyResolutionManagement {
+ repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
+ repositories {
+ google()
+ mavenCentral()
+ }
+}
+
+rootProject.name = "Problem3_CalebFontenot"
+include(":app")
+
diff --git a/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/.gitignore b/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/.gitignore
new file mode 100644
index 0000000..aa724b7
--- /dev/null
+++ b/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/.gitignore
@@ -0,0 +1,15 @@
+*.iml
+.gradle
+/local.properties
+/.idea/caches
+/.idea/libraries
+/.idea/modules.xml
+/.idea/workspace.xml
+/.idea/navEditor.xml
+/.idea/assetWizardSettings.xml
+.DS_Store
+/build
+/captures
+.externalNativeBuild
+.cxx
+local.properties
diff --git a/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/.idea/.name b/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/.idea/.name
new file mode 100644
index 0000000..154f5c3
--- /dev/null
+++ b/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/.idea/.name
@@ -0,0 +1 @@
+Problem1_CalebFontenot
\ No newline at end of file
diff --git a/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/.idea/appInsightsSettings.xml b/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/.idea/appInsightsSettings.xml
new file mode 100644
index 0000000..371f2e2
--- /dev/null
+++ b/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/.idea/appInsightsSettings.xml
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/.idea/codeStyles b/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/.idea/codeStyles
new file mode 100644
index 0000000..e2e415d
--- /dev/null
+++ b/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/.idea/codeStyles
@@ -0,0 +1,119 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/.idea/gradle.xml b/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/.idea/gradle.xml
new file mode 100644
index 0000000..0897082
--- /dev/null
+++ b/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/.idea/gradle.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/.idea/migrations.xml b/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/.idea/migrations.xml
new file mode 100644
index 0000000..f8051a6
--- /dev/null
+++ b/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/.idea/migrations.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/.idea/misc.xml b/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/.idea/misc.xml
new file mode 100644
index 0000000..0ad17cb
--- /dev/null
+++ b/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/.idea/misc.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/.idea/vcs.xml b/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/.idea/vcs.xml
new file mode 100644
index 0000000..6c0b863
--- /dev/null
+++ b/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/Problem1.pdf b/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/Problem1.pdf
new file mode 100644
index 0000000..7d8c138
Binary files /dev/null and b/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/Problem1.pdf differ
diff --git a/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/app/.gitignore b/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/app/.gitignore
new file mode 100644
index 0000000..42afabf
--- /dev/null
+++ b/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/app/.gitignore
@@ -0,0 +1 @@
+/build
\ No newline at end of file
diff --git a/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/app/build.gradle.kts b/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/app/build.gradle.kts
new file mode 100644
index 0000000..70b64fc
--- /dev/null
+++ b/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/app/build.gradle.kts
@@ -0,0 +1,43 @@
+plugins {
+ alias(libs.plugins.androidApplication)
+}
+
+android {
+ namespace = "com.calebfontenot.problem1_calebfontenot"
+ compileSdk = 34
+
+ defaultConfig {
+ applicationId = "com.calebfontenot.problem1_calebfontenot"
+ minSdk = 24
+ targetSdk = 34
+ versionCode = 1
+ versionName = "1.0"
+
+ testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
+ }
+
+ buildTypes {
+ release {
+ isMinifyEnabled = false
+ proguardFiles(
+ getDefaultProguardFile("proguard-android-optimize.txt"),
+ "proguard-rules.pro"
+ )
+ }
+ }
+ compileOptions {
+ sourceCompatibility = JavaVersion.VERSION_1_8
+ targetCompatibility = JavaVersion.VERSION_1_8
+ }
+}
+
+dependencies {
+
+ implementation(libs.appcompat)
+ implementation(libs.material)
+ implementation(libs.activity)
+ implementation(libs.constraintlayout)
+ testImplementation(libs.junit)
+ androidTestImplementation(libs.ext.junit)
+ androidTestImplementation(libs.espresso.core)
+}
\ No newline at end of file
diff --git a/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/app/proguard-rules.pro b/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/app/proguard-rules.pro
new file mode 100644
index 0000000..481bb43
--- /dev/null
+++ b/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/app/proguard-rules.pro
@@ -0,0 +1,21 @@
+# Add project specific ProGuard rules here.
+# You can control the set of applied configuration files using the
+# proguardFiles setting in build.gradle.
+#
+# For more details, see
+# http://developer.android.com/guide/developing/tools/proguard.html
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+# public *;
+#}
+
+# Uncomment this to preserve the line number information for
+# debugging stack traces.
+#-keepattributes SourceFile,LineNumberTable
+
+# If you keep the line number information, uncomment this to
+# hide the original source file name.
+#-renamesourcefileattribute SourceFile
\ No newline at end of file
diff --git a/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/app/src/androidTest/java/com/calebfontenot/problem1_calebfontenot/ExampleInstrumentedTest.java b/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/app/src/androidTest/java/com/calebfontenot/problem1_calebfontenot/ExampleInstrumentedTest.java
new file mode 100644
index 0000000..eac4d02
--- /dev/null
+++ b/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/app/src/androidTest/java/com/calebfontenot/problem1_calebfontenot/ExampleInstrumentedTest.java
@@ -0,0 +1,26 @@
+package com.calebfontenot.problem1_calebfontenot;
+
+import android.content.Context;
+
+import androidx.test.platform.app.InstrumentationRegistry;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import static org.junit.Assert.*;
+
+/**
+ * Instrumented test, which will execute on an Android device.
+ *
+ * @see Testing documentation
+ */
+@RunWith(AndroidJUnit4.class)
+public class ExampleInstrumentedTest {
+ @Test
+ public void useAppContext() {
+ // Context of the app under test.
+ Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext();
+ assertEquals("com.calebfontenot.problem1_calebfontenot", appContext.getPackageName());
+ }
+}
\ No newline at end of file
diff --git a/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/app/src/main/AndroidManifest.xml b/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/app/src/main/AndroidManifest.xml
new file mode 100644
index 0000000..1f5a6fb
--- /dev/null
+++ b/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/app/src/main/AndroidManifest.xml
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/app/src/main/java/com/calebfontenot/problem1_calebfontenot/MainActivity.java b/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/app/src/main/java/com/calebfontenot/problem1_calebfontenot/MainActivity.java
new file mode 100644
index 0000000..15305e0
--- /dev/null
+++ b/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/app/src/main/java/com/calebfontenot/problem1_calebfontenot/MainActivity.java
@@ -0,0 +1,58 @@
+package com.calebfontenot.problem1_calebfontenot;
+
+import android.content.Intent;
+import android.os.Bundle;
+import android.view.View;
+import android.widget.Button;
+import android.widget.TextView;
+
+import androidx.activity.EdgeToEdge;
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.core.graphics.Insets;
+import androidx.core.view.ViewCompat;
+import androidx.core.view.WindowInsetsCompat;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+
+public class MainActivity extends AppCompatActivity {
+
+ ArrayList dataToPass = new ArrayList<>();
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ EdgeToEdge.enable(this);
+ setContentView(R.layout.activity_main);
+ ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main), (v, insets) -> {
+ Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars());
+ v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom);
+ return insets;
+ });
+
+ TextView textView = this.findViewById(R.id.arrayListTextView);
+ Button passToActivityButton = this.findViewById(R.id.passToActivity2Button);
+ Bundle extras = getIntent().getExtras();
+ if (extras != null) {
+
+ Serializable data = extras.getSerializable("dataToMainActivity");
+ dataToPass = (ArrayList) data;
+ //The key argument here must match that used in the other activity
+ } else {
+ // Init dataToPass Array
+ dataToPass.add(new Person("John"));
+ dataToPass.add(new Person("Mary"));
+ }
+
+
+ textView.setText(dataToPass.toString());
+ passToActivityButton.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ Intent i = new Intent(MainActivity.this, SecondActivity.class);
+ i.putExtra("dataFromMainActivity",dataToPass);
+ startActivity(i);
+ }
+ });
+ }
+}
\ No newline at end of file
diff --git a/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/app/src/main/java/com/calebfontenot/problem1_calebfontenot/Person.java b/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/app/src/main/java/com/calebfontenot/problem1_calebfontenot/Person.java
new file mode 100644
index 0000000..d738405
--- /dev/null
+++ b/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/app/src/main/java/com/calebfontenot/problem1_calebfontenot/Person.java
@@ -0,0 +1,26 @@
+package com.calebfontenot.problem1_calebfontenot;
+
+import java.io.Serializable;
+
+public class Person implements Serializable {
+ String name;
+
+ public Person(String name) {
+ this.name = name;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ @Override
+ public String toString() {
+ return "Person{" +
+ "name='" + name + '\'' +
+ '}';
+ }
+}
diff --git a/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/app/src/main/java/com/calebfontenot/problem1_calebfontenot/SecondActivity.java b/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/app/src/main/java/com/calebfontenot/problem1_calebfontenot/SecondActivity.java
new file mode 100644
index 0000000..4504f5b
--- /dev/null
+++ b/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/app/src/main/java/com/calebfontenot/problem1_calebfontenot/SecondActivity.java
@@ -0,0 +1,53 @@
+package com.calebfontenot.problem1_calebfontenot;
+
+import android.content.Intent;
+import android.os.Bundle;
+import android.view.View;
+import android.widget.Button;
+import android.widget.TextView;
+
+import androidx.activity.EdgeToEdge;
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.core.graphics.Insets;
+import androidx.core.view.ViewCompat;
+import androidx.core.view.WindowInsetsCompat;
+
+import java.io.Serializable;
+import java.lang.reflect.Array;
+import java.util.ArrayList;
+
+public class SecondActivity extends AppCompatActivity {
+
+ ArrayList dataFromMainActivity = new ArrayList<>();
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ EdgeToEdge.enable(this);
+ setContentView(R.layout.activity2);
+ ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main), (v, insets) -> {
+ Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars());
+ v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom);
+ return insets;
+ });
+ TextView textView = findViewById(R.id.arrayListTextView);
+ Button passDataBackButton = findViewById(R.id.passToActivity1Button);
+ Bundle extras = getIntent().getExtras();
+ if (extras != null) {
+
+ Serializable data = extras.getSerializable("dataFromMainActivity");
+ dataFromMainActivity = (ArrayList) data;
+ //The key argument here must match that used in the other activity
+ }
+ textView.setText(dataFromMainActivity.toString());
+
+ passDataBackButton.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ Intent i = new Intent(SecondActivity.this, MainActivity.class);
+ dataFromMainActivity.add(new Person("Anna"));
+ i.putExtra("dataToMainActivity",dataFromMainActivity);
+ startActivity(i);
+ }
+ });
+ }
+
+}
diff --git a/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/app/src/main/res/drawable/ic_launcher_background.xml b/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/app/src/main/res/drawable/ic_launcher_background.xml
new file mode 100644
index 0000000..07d5da9
--- /dev/null
+++ b/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/app/src/main/res/drawable/ic_launcher_background.xml
@@ -0,0 +1,170 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/app/src/main/res/drawable/ic_launcher_foreground.xml b/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/app/src/main/res/drawable/ic_launcher_foreground.xml
new file mode 100644
index 0000000..2b068d1
--- /dev/null
+++ b/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/app/src/main/res/drawable/ic_launcher_foreground.xml
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/app/src/main/res/layout/activity2.xml b/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/app/src/main/res/layout/activity2.xml
new file mode 100644
index 0000000..71a3da1
--- /dev/null
+++ b/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/app/src/main/res/layout/activity2.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/app/src/main/res/layout/activity_main.xml b/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/app/src/main/res/layout/activity_main.xml
new file mode 100644
index 0000000..c90bdfe
--- /dev/null
+++ b/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/app/src/main/res/layout/activity_main.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
new file mode 100644
index 0000000..6f3b755
--- /dev/null
+++ b/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
new file mode 100644
index 0000000..6f3b755
--- /dev/null
+++ b/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/app/src/main/res/mipmap-hdpi/ic_launcher.webp b/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/app/src/main/res/mipmap-hdpi/ic_launcher.webp
new file mode 100644
index 0000000..c209e78
Binary files /dev/null and b/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/app/src/main/res/mipmap-hdpi/ic_launcher.webp differ
diff --git a/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp b/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp
new file mode 100644
index 0000000..b2dfe3d
Binary files /dev/null and b/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp differ
diff --git a/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/app/src/main/res/mipmap-mdpi/ic_launcher.webp b/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/app/src/main/res/mipmap-mdpi/ic_launcher.webp
new file mode 100644
index 0000000..4f0f1d6
Binary files /dev/null and b/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/app/src/main/res/mipmap-mdpi/ic_launcher.webp differ
diff --git a/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp b/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp
new file mode 100644
index 0000000..62b611d
Binary files /dev/null and b/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp differ
diff --git a/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/app/src/main/res/mipmap-xhdpi/ic_launcher.webp b/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/app/src/main/res/mipmap-xhdpi/ic_launcher.webp
new file mode 100644
index 0000000..948a307
Binary files /dev/null and b/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/app/src/main/res/mipmap-xhdpi/ic_launcher.webp differ
diff --git a/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp b/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp
new file mode 100644
index 0000000..1b9a695
Binary files /dev/null and b/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp differ
diff --git a/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp b/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp
new file mode 100644
index 0000000..28d4b77
Binary files /dev/null and b/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp differ
diff --git a/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp b/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp
new file mode 100644
index 0000000..9287f50
Binary files /dev/null and b/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp differ
diff --git a/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp b/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp
new file mode 100644
index 0000000..aa7d642
Binary files /dev/null and b/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp differ
diff --git a/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp b/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp
new file mode 100644
index 0000000..9126ae3
Binary files /dev/null and b/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp differ
diff --git a/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/app/src/main/res/values-night/themes.xml b/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/app/src/main/res/values-night/themes.xml
new file mode 100644
index 0000000..21beaf2
--- /dev/null
+++ b/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/app/src/main/res/values-night/themes.xml
@@ -0,0 +1,7 @@
+
+
+
+
\ No newline at end of file
diff --git a/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/app/src/main/res/values/colors.xml b/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/app/src/main/res/values/colors.xml
new file mode 100644
index 0000000..c8524cd
--- /dev/null
+++ b/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/app/src/main/res/values/colors.xml
@@ -0,0 +1,5 @@
+
+
+ #FF000000
+ #FFFFFFFF
+
\ No newline at end of file
diff --git a/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/app/src/main/res/values/strings.xml b/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/app/src/main/res/values/strings.xml
new file mode 100644
index 0000000..52566f4
--- /dev/null
+++ b/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/app/src/main/res/values/strings.xml
@@ -0,0 +1,3 @@
+
+ Problem1_CalebFontenot
+
\ No newline at end of file
diff --git a/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/app/src/main/res/values/themes.xml b/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/app/src/main/res/values/themes.xml
new file mode 100644
index 0000000..dea640e
--- /dev/null
+++ b/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/app/src/main/res/values/themes.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/app/src/main/res/xml/backup_rules.xml b/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/app/src/main/res/xml/backup_rules.xml
new file mode 100644
index 0000000..fa0f996
--- /dev/null
+++ b/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/app/src/main/res/xml/backup_rules.xml
@@ -0,0 +1,13 @@
+
+
+
+
\ No newline at end of file
diff --git a/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/app/src/main/res/xml/data_extraction_rules.xml b/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/app/src/main/res/xml/data_extraction_rules.xml
new file mode 100644
index 0000000..9ee9997
--- /dev/null
+++ b/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/app/src/main/res/xml/data_extraction_rules.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/app/src/test/java/com/calebfontenot/problem1_calebfontenot/ExampleUnitTest.java b/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/app/src/test/java/com/calebfontenot/problem1_calebfontenot/ExampleUnitTest.java
new file mode 100644
index 0000000..56b512b
--- /dev/null
+++ b/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/app/src/test/java/com/calebfontenot/problem1_calebfontenot/ExampleUnitTest.java
@@ -0,0 +1,17 @@
+package com.calebfontenot.problem1_calebfontenot;
+
+import org.junit.Test;
+
+import static org.junit.Assert.*;
+
+/**
+ * Example local unit test, which will execute on the development machine (host).
+ *
+ * @see Testing documentation
+ */
+public class ExampleUnitTest {
+ @Test
+ public void addition_isCorrect() {
+ assertEquals(4, 2 + 2);
+ }
+}
\ No newline at end of file
diff --git a/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/build.gradle.kts b/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/build.gradle.kts
new file mode 100644
index 0000000..2bbd2a9
--- /dev/null
+++ b/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/build.gradle.kts
@@ -0,0 +1,4 @@
+// Top-level build file where you can add configuration options common to all sub-projects/modules.
+plugins {
+ alias(libs.plugins.androidApplication) apply false
+}
\ No newline at end of file
diff --git a/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/gradle.properties b/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/gradle.properties
new file mode 100644
index 0000000..4387edc
--- /dev/null
+++ b/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/gradle.properties
@@ -0,0 +1,21 @@
+# Project-wide Gradle settings.
+# IDE (e.g. Android Studio) users:
+# Gradle settings configured through the IDE *will override*
+# any settings specified in this file.
+# For more details on how to configure your build environment visit
+# http://www.gradle.org/docs/current/userguide/build_environment.html
+# Specifies the JVM arguments used for the daemon process.
+# The setting is particularly useful for tweaking memory settings.
+org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8
+# When configured, Gradle will run in incubating parallel mode.
+# This option should only be used with decoupled projects. For more details, visit
+# https://developer.android.com/r/tools/gradle-multi-project-decoupled-projects
+# org.gradle.parallel=true
+# AndroidX package structure to make it clearer which packages are bundled with the
+# Android operating system, and which are packaged with your app's APK
+# https://developer.android.com/topic/libraries/support-library/androidx-rn
+android.useAndroidX=true
+# Enables namespacing of each library's R class so that its R class includes only the
+# resources declared in the library itself and none from the library's dependencies,
+# thereby reducing the size of the R class for that library
+android.nonTransitiveRClass=true
\ No newline at end of file
diff --git a/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/gradle/libs.versions.toml b/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/gradle/libs.versions.toml
new file mode 100644
index 0000000..4c0cc21
--- /dev/null
+++ b/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/gradle/libs.versions.toml
@@ -0,0 +1,22 @@
+[versions]
+agp = "8.3.0"
+junit = "4.13.2"
+junitVersion = "1.1.5"
+espressoCore = "3.5.1"
+appcompat = "1.6.1"
+material = "1.11.0"
+activity = "1.8.0"
+constraintlayout = "2.1.4"
+
+[libraries]
+junit = { group = "junit", name = "junit", version.ref = "junit" }
+ext-junit = { group = "androidx.test.ext", name = "junit", version.ref = "junitVersion" }
+espresso-core = { group = "androidx.test.espresso", name = "espresso-core", version.ref = "espressoCore" }
+appcompat = { group = "androidx.appcompat", name = "appcompat", version.ref = "appcompat" }
+material = { group = "com.google.android.material", name = "material", version.ref = "material" }
+activity = { group = "androidx.activity", name = "activity", version.ref = "activity" }
+constraintlayout = { group = "androidx.constraintlayout", name = "constraintlayout", version.ref = "constraintlayout" }
+
+[plugins]
+androidApplication = { id = "com.android.application", version.ref = "agp" }
+
diff --git a/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/gradle/wrapper/gradle-wrapper.jar b/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/gradle/wrapper/gradle-wrapper.jar
new file mode 100644
index 0000000..e708b1c
Binary files /dev/null and b/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/gradle/wrapper/gradle-wrapper.properties b/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/gradle/wrapper/gradle-wrapper.properties
new file mode 100644
index 0000000..a7ee67c
--- /dev/null
+++ b/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/gradle/wrapper/gradle-wrapper.properties
@@ -0,0 +1,6 @@
+#Mon Mar 11 09:32:10 CDT 2024
+distributionBase=GRADLE_USER_HOME
+distributionPath=wrapper/dists
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.4-bin.zip
+zipStoreBase=GRADLE_USER_HOME
+zipStorePath=wrapper/dists
diff --git a/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/gradlew b/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/gradlew
new file mode 100755
index 0000000..4f906e0
--- /dev/null
+++ b/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/gradlew
@@ -0,0 +1,185 @@
+#!/usr/bin/env sh
+
+#
+# Copyright 2015 the original author or authors.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+##############################################################################
+##
+## Gradle start up script for UN*X
+##
+##############################################################################
+
+# Attempt to set APP_HOME
+# Resolve links: $0 may be a link
+PRG="$0"
+# Need this for relative symlinks.
+while [ -h "$PRG" ] ; do
+ ls=`ls -ld "$PRG"`
+ link=`expr "$ls" : '.*-> \(.*\)$'`
+ if expr "$link" : '/.*' > /dev/null; then
+ PRG="$link"
+ else
+ PRG=`dirname "$PRG"`"/$link"
+ fi
+done
+SAVED="`pwd`"
+cd "`dirname \"$PRG\"`/" >/dev/null
+APP_HOME="`pwd -P`"
+cd "$SAVED" >/dev/null
+
+APP_NAME="Gradle"
+APP_BASE_NAME=`basename "$0"`
+
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
+
+# Use the maximum available, or set MAX_FD != -1 to use that value.
+MAX_FD="maximum"
+
+warn () {
+ echo "$*"
+}
+
+die () {
+ echo
+ echo "$*"
+ echo
+ exit 1
+}
+
+# OS specific support (must be 'true' or 'false').
+cygwin=false
+msys=false
+darwin=false
+nonstop=false
+case "`uname`" in
+ CYGWIN* )
+ cygwin=true
+ ;;
+ Darwin* )
+ darwin=true
+ ;;
+ MINGW* )
+ msys=true
+ ;;
+ NONSTOP* )
+ nonstop=true
+ ;;
+esac
+
+CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
+
+
+# Determine the Java command to use to start the JVM.
+if [ -n "$JAVA_HOME" ] ; then
+ if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+ # IBM's JDK on AIX uses strange locations for the executables
+ JAVACMD="$JAVA_HOME/jre/sh/java"
+ else
+ JAVACMD="$JAVA_HOME/bin/java"
+ fi
+ if [ ! -x "$JAVACMD" ] ; then
+ die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+ fi
+else
+ JAVACMD="java"
+ which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+fi
+
+# Increase the maximum file descriptors if we can.
+if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
+ MAX_FD_LIMIT=`ulimit -H -n`
+ if [ $? -eq 0 ] ; then
+ if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
+ MAX_FD="$MAX_FD_LIMIT"
+ fi
+ ulimit -n $MAX_FD
+ if [ $? -ne 0 ] ; then
+ warn "Could not set maximum file descriptor limit: $MAX_FD"
+ fi
+ else
+ warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
+ fi
+fi
+
+# For Darwin, add options to specify how the application appears in the dock
+if $darwin; then
+ GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
+fi
+
+# For Cygwin or MSYS, switch paths to Windows format before running java
+if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then
+ APP_HOME=`cygpath --path --mixed "$APP_HOME"`
+ CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
+
+ JAVACMD=`cygpath --unix "$JAVACMD"`
+
+ # We build the pattern for arguments to be converted via cygpath
+ ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
+ SEP=""
+ for dir in $ROOTDIRSRAW ; do
+ ROOTDIRS="$ROOTDIRS$SEP$dir"
+ SEP="|"
+ done
+ OURCYGPATTERN="(^($ROOTDIRS))"
+ # Add a user-defined pattern to the cygpath arguments
+ if [ "$GRADLE_CYGPATTERN" != "" ] ; then
+ OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
+ fi
+ # Now convert the arguments - kludge to limit ourselves to /bin/sh
+ i=0
+ for arg in "$@" ; do
+ CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
+ CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
+
+ if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
+ eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
+ else
+ eval `echo args$i`="\"$arg\""
+ fi
+ i=`expr $i + 1`
+ done
+ case $i in
+ 0) set -- ;;
+ 1) set -- "$args0" ;;
+ 2) set -- "$args0" "$args1" ;;
+ 3) set -- "$args0" "$args1" "$args2" ;;
+ 4) set -- "$args0" "$args1" "$args2" "$args3" ;;
+ 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
+ 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
+ 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
+ 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
+ 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
+ esac
+fi
+
+# Escape application args
+save () {
+ for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
+ echo " "
+}
+APP_ARGS=`save "$@"`
+
+# Collect all arguments for the java command, following the shell quoting and substitution rules
+eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
+
+exec "$JAVACMD" "$@"
diff --git a/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/gradlew.bat b/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/gradlew.bat
new file mode 100644
index 0000000..ac1b06f
--- /dev/null
+++ b/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/gradlew.bat
@@ -0,0 +1,89 @@
+@rem
+@rem Copyright 2015 the original author or authors.
+@rem
+@rem Licensed under the Apache License, Version 2.0 (the "License");
+@rem you may not use this file except in compliance with the License.
+@rem You may obtain a copy of the License at
+@rem
+@rem https://www.apache.org/licenses/LICENSE-2.0
+@rem
+@rem Unless required by applicable law or agreed to in writing, software
+@rem distributed under the License is distributed on an "AS IS" BASIS,
+@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+@rem See the License for the specific language governing permissions and
+@rem limitations under the License.
+@rem
+
+@if "%DEBUG%" == "" @echo off
+@rem ##########################################################################
+@rem
+@rem Gradle startup script for Windows
+@rem
+@rem ##########################################################################
+
+@rem Set local scope for the variables with windows NT shell
+if "%OS%"=="Windows_NT" setlocal
+
+set DIRNAME=%~dp0
+if "%DIRNAME%" == "" set DIRNAME=.
+set APP_BASE_NAME=%~n0
+set APP_HOME=%DIRNAME%
+
+@rem Resolve any "." and ".." in APP_HOME to make it shorter.
+for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
+
+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
+
+@rem Find java.exe
+if defined JAVA_HOME goto findJavaFromJavaHome
+
+set JAVA_EXE=java.exe
+%JAVA_EXE% -version >NUL 2>&1
+if "%ERRORLEVEL%" == "0" goto execute
+
+echo.
+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:findJavaFromJavaHome
+set JAVA_HOME=%JAVA_HOME:"=%
+set JAVA_EXE=%JAVA_HOME%/bin/java.exe
+
+if exist "%JAVA_EXE%" goto execute
+
+echo.
+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:execute
+@rem Setup the command line
+
+set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
+
+
+@rem Execute Gradle
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
+
+:end
+@rem End local scope for the variables with windows NT shell
+if "%ERRORLEVEL%"=="0" goto mainEnd
+
+:fail
+rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
+rem the _cmd.exe /c_ return code!
+if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
+exit /b 1
+
+:mainEnd
+if "%OS%"=="Windows_NT" endlocal
+
+:omega
diff --git a/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/settings.gradle.kts b/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/settings.gradle.kts
new file mode 100644
index 0000000..0702464
--- /dev/null
+++ b/Quizzes/ProgrammingQuiz1/Problem1_CalebFontenot/settings.gradle.kts
@@ -0,0 +1,24 @@
+pluginManagement {
+ repositories {
+ google {
+ content {
+ includeGroupByRegex("com\\.android.*")
+ includeGroupByRegex("com\\.google.*")
+ includeGroupByRegex("androidx.*")
+ }
+ }
+ mavenCentral()
+ gradlePluginPortal()
+ }
+}
+dependencyResolutionManagement {
+ repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
+ repositories {
+ google()
+ mavenCentral()
+ }
+}
+
+rootProject.name = "Problem1_CalebFontenot"
+include(":app")
+
\ No newline at end of file
diff --git a/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/.gitignore b/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/.gitignore
new file mode 100644
index 0000000..aa724b7
--- /dev/null
+++ b/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/.gitignore
@@ -0,0 +1,15 @@
+*.iml
+.gradle
+/local.properties
+/.idea/caches
+/.idea/libraries
+/.idea/modules.xml
+/.idea/workspace.xml
+/.idea/navEditor.xml
+/.idea/assetWizardSettings.xml
+.DS_Store
+/build
+/captures
+.externalNativeBuild
+.cxx
+local.properties
diff --git a/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/.idea/appInsightsSettings.xml b/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/.idea/appInsightsSettings.xml
new file mode 100644
index 0000000..371f2e2
--- /dev/null
+++ b/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/.idea/appInsightsSettings.xml
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/.idea/codeStyles b/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/.idea/codeStyles
new file mode 100644
index 0000000..e2e415d
--- /dev/null
+++ b/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/.idea/codeStyles
@@ -0,0 +1,119 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/.idea/gradle.xml b/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/.idea/gradle.xml
new file mode 100644
index 0000000..0897082
--- /dev/null
+++ b/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/.idea/gradle.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/.idea/migrations.xml b/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/.idea/migrations.xml
new file mode 100644
index 0000000..f8051a6
--- /dev/null
+++ b/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/.idea/migrations.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/.idea/misc.xml b/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/.idea/misc.xml
new file mode 100644
index 0000000..0ad17cb
--- /dev/null
+++ b/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/.idea/misc.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/.idea/vcs.xml b/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/.idea/vcs.xml
new file mode 100644
index 0000000..6c0b863
--- /dev/null
+++ b/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/Problem2.pdf b/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/Problem2.pdf
new file mode 100644
index 0000000..7709291
Binary files /dev/null and b/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/Problem2.pdf differ
diff --git a/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/app/.gitignore b/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/app/.gitignore
new file mode 100644
index 0000000..42afabf
--- /dev/null
+++ b/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/app/.gitignore
@@ -0,0 +1 @@
+/build
\ No newline at end of file
diff --git a/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/app/build.gradle.kts b/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/app/build.gradle.kts
new file mode 100644
index 0000000..0451694
--- /dev/null
+++ b/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/app/build.gradle.kts
@@ -0,0 +1,44 @@
+plugins {
+ alias(libs.plugins.androidApplication)
+}
+
+android {
+ namespace = "com.calebfontenot.problem2_calebfontenot"
+ compileSdk = 34
+
+ defaultConfig {
+ applicationId = "com.calebfontenot.problem2_calebfontenot"
+ minSdk = 24
+ targetSdk = 34
+ versionCode = 1
+ versionName = "1.0"
+
+ testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
+ }
+
+ buildTypes {
+ release {
+ isMinifyEnabled = false
+ proguardFiles(
+ getDefaultProguardFile("proguard-android-optimize.txt"),
+ "proguard-rules.pro"
+ )
+ }
+ }
+ compileOptions {
+ sourceCompatibility = JavaVersion.VERSION_1_8
+ targetCompatibility = JavaVersion.VERSION_1_8
+ }
+}
+
+dependencies {
+
+ implementation(libs.appcompat)
+ implementation(libs.material)
+ implementation(libs.activity)
+ implementation(libs.constraintlayout)
+ implementation(libs.recyclerview)
+ testImplementation(libs.junit)
+ androidTestImplementation(libs.ext.junit)
+ androidTestImplementation(libs.espresso.core)
+}
\ No newline at end of file
diff --git a/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/app/proguard-rules.pro b/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/app/proguard-rules.pro
new file mode 100644
index 0000000..481bb43
--- /dev/null
+++ b/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/app/proguard-rules.pro
@@ -0,0 +1,21 @@
+# Add project specific ProGuard rules here.
+# You can control the set of applied configuration files using the
+# proguardFiles setting in build.gradle.
+#
+# For more details, see
+# http://developer.android.com/guide/developing/tools/proguard.html
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+# public *;
+#}
+
+# Uncomment this to preserve the line number information for
+# debugging stack traces.
+#-keepattributes SourceFile,LineNumberTable
+
+# If you keep the line number information, uncomment this to
+# hide the original source file name.
+#-renamesourcefileattribute SourceFile
\ No newline at end of file
diff --git a/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/app/src/androidTest/java/com/calebfontenot/problem2_calebfontenot/ExampleInstrumentedTest.java b/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/app/src/androidTest/java/com/calebfontenot/problem2_calebfontenot/ExampleInstrumentedTest.java
new file mode 100644
index 0000000..0591d3e
--- /dev/null
+++ b/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/app/src/androidTest/java/com/calebfontenot/problem2_calebfontenot/ExampleInstrumentedTest.java
@@ -0,0 +1,26 @@
+package com.calebfontenot.problem2_calebfontenot;
+
+import android.content.Context;
+
+import androidx.test.platform.app.InstrumentationRegistry;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import static org.junit.Assert.*;
+
+/**
+ * Instrumented test, which will execute on an Android device.
+ *
+ * @see Testing documentation
+ */
+@RunWith(AndroidJUnit4.class)
+public class ExampleInstrumentedTest {
+ @Test
+ public void useAppContext() {
+ // Context of the app under test.
+ Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext();
+ assertEquals("com.calebfontenot.problem2_calebfontenot", appContext.getPackageName());
+ }
+}
\ No newline at end of file
diff --git a/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/app/src/main/AndroidManifest.xml b/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/app/src/main/AndroidManifest.xml
new file mode 100644
index 0000000..a93daa5
--- /dev/null
+++ b/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/app/src/main/AndroidManifest.xml
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/app/src/main/java/com/calebfontenot/problem2_calebfontenot/MainActivity.java b/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/app/src/main/java/com/calebfontenot/problem2_calebfontenot/MainActivity.java
new file mode 100644
index 0000000..352907d
--- /dev/null
+++ b/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/app/src/main/java/com/calebfontenot/problem2_calebfontenot/MainActivity.java
@@ -0,0 +1,37 @@
+package com.calebfontenot.problem2_calebfontenot;
+
+import android.annotation.SuppressLint;
+import android.os.Bundle;
+import android.view.View;
+import android.widget.Toast;
+
+import androidx.activity.EdgeToEdge;
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.core.graphics.Insets;
+import androidx.core.view.ViewCompat;
+import androidx.core.view.WindowInsetsCompat;
+import androidx.recyclerview.widget.LinearLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
+
+import java.util.ArrayList;
+import java.util.UUID;
+
+public class MainActivity extends AppCompatActivity {
+ MyRecyclerViewAdapter adapter;
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_main);
+
+ // data to populate the RecyclerView with
+ ArrayList uuids = new ArrayList<>();
+ for (int i = 0; i < 10; ++i) {
+ uuids.add(String.valueOf(UUID.randomUUID()));
+ }
+
+ RecyclerView recyclerView = findViewById(R.id.rvUUID);
+ recyclerView.setLayoutManager(new LinearLayoutManager(this));
+ adapter = new MyRecyclerViewAdapter(this, uuids);
+ recyclerView.setAdapter(adapter);
+ }
+}
\ No newline at end of file
diff --git a/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/app/src/main/java/com/calebfontenot/problem2_calebfontenot/MyRecyclerViewAdapter.java b/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/app/src/main/java/com/calebfontenot/problem2_calebfontenot/MyRecyclerViewAdapter.java
new file mode 100644
index 0000000..394c4f7
--- /dev/null
+++ b/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/app/src/main/java/com/calebfontenot/problem2_calebfontenot/MyRecyclerViewAdapter.java
@@ -0,0 +1,55 @@
+package com.calebfontenot.problem2_calebfontenot;
+
+import android.content.Context;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.AdapterView;
+import android.widget.TextView;
+
+import androidx.annotation.NonNull;
+import androidx.recyclerview.widget.*;
+
+import java.util.List;
+
+public class MyRecyclerViewAdapter extends RecyclerView.Adapter {
+ private List mData;
+ private LayoutInflater mInflater;
+
+
+ MyRecyclerViewAdapter(Context context, List data) {
+ this.mInflater = LayoutInflater.from(context);
+ this.mData = data;
+ }
+
+ @NonNull
+ @Override
+ public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+ View view = mInflater.inflate(R.layout.recyclerview_row, parent, false);
+ return new ViewHolder(view);
+ }
+
+ @Override
+ public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
+ String uuid = mData.get(position);
+ holder.myTextView.setText(uuid);
+ }
+
+ @Override
+ public int getItemCount() {
+ return mData.size();
+ }
+
+ public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
+ TextView myTextView;
+ public ViewHolder(View view) {
+ super(view);
+ myTextView = itemView.findViewById(R.id.tvUUID);
+ }
+
+ @Override
+ public void onClick(View v) {
+
+ }
+ }
+}
diff --git a/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/app/src/main/res/drawable/ic_launcher_background.xml b/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/app/src/main/res/drawable/ic_launcher_background.xml
new file mode 100644
index 0000000..07d5da9
--- /dev/null
+++ b/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/app/src/main/res/drawable/ic_launcher_background.xml
@@ -0,0 +1,170 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/app/src/main/res/drawable/ic_launcher_foreground.xml b/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/app/src/main/res/drawable/ic_launcher_foreground.xml
new file mode 100644
index 0000000..2b068d1
--- /dev/null
+++ b/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/app/src/main/res/drawable/ic_launcher_foreground.xml
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/app/src/main/res/layout/activity_main.xml b/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/app/src/main/res/layout/activity_main.xml
new file mode 100644
index 0000000..58fba74
--- /dev/null
+++ b/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/app/src/main/res/layout/activity_main.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/app/src/main/res/layout/recyclerview_row.xml b/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/app/src/main/res/layout/recyclerview_row.xml
new file mode 100644
index 0000000..f61d876
--- /dev/null
+++ b/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/app/src/main/res/layout/recyclerview_row.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
diff --git a/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
new file mode 100644
index 0000000..6f3b755
--- /dev/null
+++ b/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
new file mode 100644
index 0000000..6f3b755
--- /dev/null
+++ b/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/app/src/main/res/mipmap-hdpi/ic_launcher.webp b/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/app/src/main/res/mipmap-hdpi/ic_launcher.webp
new file mode 100644
index 0000000..c209e78
Binary files /dev/null and b/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/app/src/main/res/mipmap-hdpi/ic_launcher.webp differ
diff --git a/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp b/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp
new file mode 100644
index 0000000..b2dfe3d
Binary files /dev/null and b/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp differ
diff --git a/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/app/src/main/res/mipmap-mdpi/ic_launcher.webp b/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/app/src/main/res/mipmap-mdpi/ic_launcher.webp
new file mode 100644
index 0000000..4f0f1d6
Binary files /dev/null and b/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/app/src/main/res/mipmap-mdpi/ic_launcher.webp differ
diff --git a/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp b/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp
new file mode 100644
index 0000000..62b611d
Binary files /dev/null and b/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp differ
diff --git a/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/app/src/main/res/mipmap-xhdpi/ic_launcher.webp b/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/app/src/main/res/mipmap-xhdpi/ic_launcher.webp
new file mode 100644
index 0000000..948a307
Binary files /dev/null and b/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/app/src/main/res/mipmap-xhdpi/ic_launcher.webp differ
diff --git a/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp b/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp
new file mode 100644
index 0000000..1b9a695
Binary files /dev/null and b/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp differ
diff --git a/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp b/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp
new file mode 100644
index 0000000..28d4b77
Binary files /dev/null and b/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp differ
diff --git a/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp b/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp
new file mode 100644
index 0000000..9287f50
Binary files /dev/null and b/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp differ
diff --git a/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp b/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp
new file mode 100644
index 0000000..aa7d642
Binary files /dev/null and b/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp differ
diff --git a/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp b/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp
new file mode 100644
index 0000000..9126ae3
Binary files /dev/null and b/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp differ
diff --git a/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/app/src/main/res/values-night/themes.xml b/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/app/src/main/res/values-night/themes.xml
new file mode 100644
index 0000000..cf26e73
--- /dev/null
+++ b/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/app/src/main/res/values-night/themes.xml
@@ -0,0 +1,7 @@
+
+
+
+
\ No newline at end of file
diff --git a/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/app/src/main/res/values/colors.xml b/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/app/src/main/res/values/colors.xml
new file mode 100644
index 0000000..c8524cd
--- /dev/null
+++ b/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/app/src/main/res/values/colors.xml
@@ -0,0 +1,5 @@
+
+
+ #FF000000
+ #FFFFFFFF
+
\ No newline at end of file
diff --git a/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/app/src/main/res/values/strings.xml b/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/app/src/main/res/values/strings.xml
new file mode 100644
index 0000000..af4b3ff
--- /dev/null
+++ b/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/app/src/main/res/values/strings.xml
@@ -0,0 +1,3 @@
+
+ Problem2_CalebFontenot
+
\ No newline at end of file
diff --git a/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/app/src/main/res/values/themes.xml b/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/app/src/main/res/values/themes.xml
new file mode 100644
index 0000000..edb706d
--- /dev/null
+++ b/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/app/src/main/res/values/themes.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/app/src/main/res/xml/backup_rules.xml b/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/app/src/main/res/xml/backup_rules.xml
new file mode 100644
index 0000000..fa0f996
--- /dev/null
+++ b/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/app/src/main/res/xml/backup_rules.xml
@@ -0,0 +1,13 @@
+
+
+
+
\ No newline at end of file
diff --git a/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/app/src/main/res/xml/data_extraction_rules.xml b/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/app/src/main/res/xml/data_extraction_rules.xml
new file mode 100644
index 0000000..9ee9997
--- /dev/null
+++ b/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/app/src/main/res/xml/data_extraction_rules.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/app/src/test/java/com/calebfontenot/problem2_calebfontenot/ExampleUnitTest.java b/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/app/src/test/java/com/calebfontenot/problem2_calebfontenot/ExampleUnitTest.java
new file mode 100644
index 0000000..9d303ad
--- /dev/null
+++ b/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/app/src/test/java/com/calebfontenot/problem2_calebfontenot/ExampleUnitTest.java
@@ -0,0 +1,17 @@
+package com.calebfontenot.problem2_calebfontenot;
+
+import org.junit.Test;
+
+import static org.junit.Assert.*;
+
+/**
+ * Example local unit test, which will execute on the development machine (host).
+ *
+ * @see Testing documentation
+ */
+public class ExampleUnitTest {
+ @Test
+ public void addition_isCorrect() {
+ assertEquals(4, 2 + 2);
+ }
+}
\ No newline at end of file
diff --git a/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/build.gradle.kts b/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/build.gradle.kts
new file mode 100644
index 0000000..2bbd2a9
--- /dev/null
+++ b/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/build.gradle.kts
@@ -0,0 +1,4 @@
+// Top-level build file where you can add configuration options common to all sub-projects/modules.
+plugins {
+ alias(libs.plugins.androidApplication) apply false
+}
\ No newline at end of file
diff --git a/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/gradle.properties b/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/gradle.properties
new file mode 100644
index 0000000..4387edc
--- /dev/null
+++ b/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/gradle.properties
@@ -0,0 +1,21 @@
+# Project-wide Gradle settings.
+# IDE (e.g. Android Studio) users:
+# Gradle settings configured through the IDE *will override*
+# any settings specified in this file.
+# For more details on how to configure your build environment visit
+# http://www.gradle.org/docs/current/userguide/build_environment.html
+# Specifies the JVM arguments used for the daemon process.
+# The setting is particularly useful for tweaking memory settings.
+org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8
+# When configured, Gradle will run in incubating parallel mode.
+# This option should only be used with decoupled projects. For more details, visit
+# https://developer.android.com/r/tools/gradle-multi-project-decoupled-projects
+# org.gradle.parallel=true
+# AndroidX package structure to make it clearer which packages are bundled with the
+# Android operating system, and which are packaged with your app's APK
+# https://developer.android.com/topic/libraries/support-library/androidx-rn
+android.useAndroidX=true
+# Enables namespacing of each library's R class so that its R class includes only the
+# resources declared in the library itself and none from the library's dependencies,
+# thereby reducing the size of the R class for that library
+android.nonTransitiveRClass=true
\ No newline at end of file
diff --git a/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/gradle/libs.versions.toml b/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/gradle/libs.versions.toml
new file mode 100644
index 0000000..e12dad2
--- /dev/null
+++ b/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/gradle/libs.versions.toml
@@ -0,0 +1,24 @@
+[versions]
+agp = "8.3.0"
+junit = "4.13.2"
+junitVersion = "1.1.5"
+espressoCore = "3.5.1"
+appcompat = "1.6.1"
+material = "1.11.0"
+activity = "1.8.0"
+constraintlayout = "2.1.4"
+recyclerview = "1.3.2"
+
+[libraries]
+junit = { group = "junit", name = "junit", version.ref = "junit" }
+ext-junit = { group = "androidx.test.ext", name = "junit", version.ref = "junitVersion" }
+espresso-core = { group = "androidx.test.espresso", name = "espresso-core", version.ref = "espressoCore" }
+appcompat = { group = "androidx.appcompat", name = "appcompat", version.ref = "appcompat" }
+material = { group = "com.google.android.material", name = "material", version.ref = "material" }
+activity = { group = "androidx.activity", name = "activity", version.ref = "activity" }
+constraintlayout = { group = "androidx.constraintlayout", name = "constraintlayout", version.ref = "constraintlayout" }
+recyclerview = { group = "androidx.recyclerview", name = "recyclerview", version.ref = "recyclerview" }
+
+[plugins]
+androidApplication = { id = "com.android.application", version.ref = "agp" }
+
diff --git a/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/gradle/wrapper/gradle-wrapper.jar b/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/gradle/wrapper/gradle-wrapper.jar
new file mode 100644
index 0000000..e708b1c
Binary files /dev/null and b/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/gradle/wrapper/gradle-wrapper.properties b/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/gradle/wrapper/gradle-wrapper.properties
new file mode 100644
index 0000000..92c8907
--- /dev/null
+++ b/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/gradle/wrapper/gradle-wrapper.properties
@@ -0,0 +1,6 @@
+#Mon Mar 11 09:32:43 CDT 2024
+distributionBase=GRADLE_USER_HOME
+distributionPath=wrapper/dists
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.4-bin.zip
+zipStoreBase=GRADLE_USER_HOME
+zipStorePath=wrapper/dists
diff --git a/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/gradlew b/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/gradlew
new file mode 100755
index 0000000..4f906e0
--- /dev/null
+++ b/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/gradlew
@@ -0,0 +1,185 @@
+#!/usr/bin/env sh
+
+#
+# Copyright 2015 the original author or authors.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+##############################################################################
+##
+## Gradle start up script for UN*X
+##
+##############################################################################
+
+# Attempt to set APP_HOME
+# Resolve links: $0 may be a link
+PRG="$0"
+# Need this for relative symlinks.
+while [ -h "$PRG" ] ; do
+ ls=`ls -ld "$PRG"`
+ link=`expr "$ls" : '.*-> \(.*\)$'`
+ if expr "$link" : '/.*' > /dev/null; then
+ PRG="$link"
+ else
+ PRG=`dirname "$PRG"`"/$link"
+ fi
+done
+SAVED="`pwd`"
+cd "`dirname \"$PRG\"`/" >/dev/null
+APP_HOME="`pwd -P`"
+cd "$SAVED" >/dev/null
+
+APP_NAME="Gradle"
+APP_BASE_NAME=`basename "$0"`
+
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
+
+# Use the maximum available, or set MAX_FD != -1 to use that value.
+MAX_FD="maximum"
+
+warn () {
+ echo "$*"
+}
+
+die () {
+ echo
+ echo "$*"
+ echo
+ exit 1
+}
+
+# OS specific support (must be 'true' or 'false').
+cygwin=false
+msys=false
+darwin=false
+nonstop=false
+case "`uname`" in
+ CYGWIN* )
+ cygwin=true
+ ;;
+ Darwin* )
+ darwin=true
+ ;;
+ MINGW* )
+ msys=true
+ ;;
+ NONSTOP* )
+ nonstop=true
+ ;;
+esac
+
+CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
+
+
+# Determine the Java command to use to start the JVM.
+if [ -n "$JAVA_HOME" ] ; then
+ if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+ # IBM's JDK on AIX uses strange locations for the executables
+ JAVACMD="$JAVA_HOME/jre/sh/java"
+ else
+ JAVACMD="$JAVA_HOME/bin/java"
+ fi
+ if [ ! -x "$JAVACMD" ] ; then
+ die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+ fi
+else
+ JAVACMD="java"
+ which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+fi
+
+# Increase the maximum file descriptors if we can.
+if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
+ MAX_FD_LIMIT=`ulimit -H -n`
+ if [ $? -eq 0 ] ; then
+ if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
+ MAX_FD="$MAX_FD_LIMIT"
+ fi
+ ulimit -n $MAX_FD
+ if [ $? -ne 0 ] ; then
+ warn "Could not set maximum file descriptor limit: $MAX_FD"
+ fi
+ else
+ warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
+ fi
+fi
+
+# For Darwin, add options to specify how the application appears in the dock
+if $darwin; then
+ GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
+fi
+
+# For Cygwin or MSYS, switch paths to Windows format before running java
+if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then
+ APP_HOME=`cygpath --path --mixed "$APP_HOME"`
+ CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
+
+ JAVACMD=`cygpath --unix "$JAVACMD"`
+
+ # We build the pattern for arguments to be converted via cygpath
+ ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
+ SEP=""
+ for dir in $ROOTDIRSRAW ; do
+ ROOTDIRS="$ROOTDIRS$SEP$dir"
+ SEP="|"
+ done
+ OURCYGPATTERN="(^($ROOTDIRS))"
+ # Add a user-defined pattern to the cygpath arguments
+ if [ "$GRADLE_CYGPATTERN" != "" ] ; then
+ OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
+ fi
+ # Now convert the arguments - kludge to limit ourselves to /bin/sh
+ i=0
+ for arg in "$@" ; do
+ CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
+ CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
+
+ if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
+ eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
+ else
+ eval `echo args$i`="\"$arg\""
+ fi
+ i=`expr $i + 1`
+ done
+ case $i in
+ 0) set -- ;;
+ 1) set -- "$args0" ;;
+ 2) set -- "$args0" "$args1" ;;
+ 3) set -- "$args0" "$args1" "$args2" ;;
+ 4) set -- "$args0" "$args1" "$args2" "$args3" ;;
+ 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
+ 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
+ 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
+ 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
+ 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
+ esac
+fi
+
+# Escape application args
+save () {
+ for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
+ echo " "
+}
+APP_ARGS=`save "$@"`
+
+# Collect all arguments for the java command, following the shell quoting and substitution rules
+eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
+
+exec "$JAVACMD" "$@"
diff --git a/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/gradlew.bat b/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/gradlew.bat
new file mode 100644
index 0000000..ac1b06f
--- /dev/null
+++ b/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/gradlew.bat
@@ -0,0 +1,89 @@
+@rem
+@rem Copyright 2015 the original author or authors.
+@rem
+@rem Licensed under the Apache License, Version 2.0 (the "License");
+@rem you may not use this file except in compliance with the License.
+@rem You may obtain a copy of the License at
+@rem
+@rem https://www.apache.org/licenses/LICENSE-2.0
+@rem
+@rem Unless required by applicable law or agreed to in writing, software
+@rem distributed under the License is distributed on an "AS IS" BASIS,
+@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+@rem See the License for the specific language governing permissions and
+@rem limitations under the License.
+@rem
+
+@if "%DEBUG%" == "" @echo off
+@rem ##########################################################################
+@rem
+@rem Gradle startup script for Windows
+@rem
+@rem ##########################################################################
+
+@rem Set local scope for the variables with windows NT shell
+if "%OS%"=="Windows_NT" setlocal
+
+set DIRNAME=%~dp0
+if "%DIRNAME%" == "" set DIRNAME=.
+set APP_BASE_NAME=%~n0
+set APP_HOME=%DIRNAME%
+
+@rem Resolve any "." and ".." in APP_HOME to make it shorter.
+for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
+
+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
+
+@rem Find java.exe
+if defined JAVA_HOME goto findJavaFromJavaHome
+
+set JAVA_EXE=java.exe
+%JAVA_EXE% -version >NUL 2>&1
+if "%ERRORLEVEL%" == "0" goto execute
+
+echo.
+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:findJavaFromJavaHome
+set JAVA_HOME=%JAVA_HOME:"=%
+set JAVA_EXE=%JAVA_HOME%/bin/java.exe
+
+if exist "%JAVA_EXE%" goto execute
+
+echo.
+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:execute
+@rem Setup the command line
+
+set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
+
+
+@rem Execute Gradle
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
+
+:end
+@rem End local scope for the variables with windows NT shell
+if "%ERRORLEVEL%"=="0" goto mainEnd
+
+:fail
+rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
+rem the _cmd.exe /c_ return code!
+if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
+exit /b 1
+
+:mainEnd
+if "%OS%"=="Windows_NT" endlocal
+
+:omega
diff --git a/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/settings.gradle.kts b/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/settings.gradle.kts
new file mode 100644
index 0000000..a4b6f09
--- /dev/null
+++ b/Quizzes/ProgrammingQuiz1/Problem2_CalebFontenot/settings.gradle.kts
@@ -0,0 +1,24 @@
+pluginManagement {
+ repositories {
+ google {
+ content {
+ includeGroupByRegex("com\\.android.*")
+ includeGroupByRegex("com\\.google.*")
+ includeGroupByRegex("androidx.*")
+ }
+ }
+ mavenCentral()
+ gradlePluginPortal()
+ }
+}
+dependencyResolutionManagement {
+ repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
+ repositories {
+ google()
+ mavenCentral()
+ }
+}
+
+rootProject.name = "Problem2_CalebFontenot"
+include(":app")
+
\ No newline at end of file
diff --git a/ZIPs/CriminalIntentChapter8_CalebFontenot.zip b/ZIPs/CriminalIntentChapter8_CalebFontenot.zip
new file mode 100644
index 0000000..e517c00
Binary files /dev/null and b/ZIPs/CriminalIntentChapter8_CalebFontenot.zip differ
diff --git a/ZIPs/ExamProblem1_CalebFontenot.zip b/ZIPs/ExamProblem1_CalebFontenot.zip
new file mode 100644
index 0000000..f44793a
Binary files /dev/null and b/ZIPs/ExamProblem1_CalebFontenot.zip differ
diff --git a/ZIPs/ExamProblem2_CalebFontenot.zip b/ZIPs/ExamProblem2_CalebFontenot.zip
new file mode 100644
index 0000000..099c257
Binary files /dev/null and b/ZIPs/ExamProblem2_CalebFontenot.zip differ
diff --git a/ZIPs/ExamProblem3_CalebFontenot.zip b/ZIPs/ExamProblem3_CalebFontenot.zip
new file mode 100644
index 0000000..47fef2c
Binary files /dev/null and b/ZIPs/ExamProblem3_CalebFontenot.zip differ
diff --git a/ZIPs/Problem1_CalebFontenot.zip b/ZIPs/Problem1_CalebFontenot.zip
new file mode 100644
index 0000000..aee462c
Binary files /dev/null and b/ZIPs/Problem1_CalebFontenot.zip differ
diff --git a/ZIPs/Problem2_CalebFontenot.zip b/ZIPs/Problem2_CalebFontenot.zip
new file mode 100644
index 0000000..98a2fe8
Binary files /dev/null and b/ZIPs/Problem2_CalebFontenot.zip differ