From f9735872d26ed44919723619501a7dfa078ecaa0 Mon Sep 17 00:00:00 2001 From: aalpesh Date: Fri, 12 Sep 2025 14:49:19 -0600 Subject: [PATCH 1/2] lab 3 commit --- .gitignore | 47 +--- .idea/.gitignore | 3 + .idea/.name | 1 + .idea/AndroidProjectSystem.xml | 6 + .idea/compiler.xml | 6 + .idea/deploymentTargetSelector.xml | 10 + .idea/gradle.xml | 19 ++ .idea/migrations.xml | 10 + .idea/misc.xml | 9 + .idea/runConfigurations.xml | 17 ++ .idea/vcs.xml | 6 + {code/app => app}/.gitignore | 0 {code/app => app}/build.gradle.kts | 23 +- {code/app => app}/proguard-rules.pro | 0 .../ExampleInstrumentedTest.java | 0 .../app => app}/src/main/AndroidManifest.xml | 0 .../listycitylab3/AddCityFragment.java | 99 +++++++ .../java/com/example/listycitylab3/City.java | 36 +++ .../listycitylab3/CityArrayAdapter.java | 41 +++ .../example/listycitylab3/MainActivity.java | 74 ++++++ .../res/drawable/ic_launcher_background.xml | 0 .../res/drawable/ic_launcher_foreground.xml | 0 app/src/main/res/layout/activity_main.xml | 24 ++ app/src/main/res/layout/content.xml | 22 ++ app/src/main/res/layout/fragment_add_city.xml | 24 ++ .../res/mipmap-anydpi-v26/ic_launcher.xml | 0 .../mipmap-anydpi-v26/ic_launcher_round.xml | 0 .../src/main/res/mipmap-hdpi/ic_launcher.webp | Bin .../res/mipmap-hdpi/ic_launcher_round.webp | Bin .../src/main/res/mipmap-mdpi/ic_launcher.webp | Bin .../res/mipmap-mdpi/ic_launcher_round.webp | Bin .../main/res/mipmap-xhdpi/ic_launcher.webp | Bin .../res/mipmap-xhdpi/ic_launcher_round.webp | Bin .../main/res/mipmap-xxhdpi/ic_launcher.webp | Bin .../res/mipmap-xxhdpi/ic_launcher_round.webp | Bin .../main/res/mipmap-xxxhdpi/ic_launcher.webp | Bin .../res/mipmap-xxxhdpi/ic_launcher_round.webp | Bin .../src/main/res/values-night/themes.xml | 0 .../src/main/res/values/colors.xml | 0 .../src/main/res/values/strings.xml | 0 app/src/main/res/values/themes.xml | 9 + .../src/main/res/xml/backup_rules.xml | 0 .../main/res/xml/data_extraction_rules.xml | 0 .../listycitylab3/ExampleUnitTest.java | 0 assets/img1.png | Bin 509456 -> 0 bytes assets/img2.png | Bin 529695 -> 0 bytes assets/img3.png | Bin 531833 -> 0 bytes assets/img4.png | Bin 511501 -> 0 bytes code/build.gradle.kts => build.gradle.kts | 2 +- .../example/listycitylab3/MainActivity.java | 36 --- .../app/src/main/res/layout/activity_main.xml | 31 --- code/app/src/main/res/layout/content.xml | 8 - code/app/src/main/res/values/themes.xml | 11 - code/gradle/libs.versions.toml | 22 -- code/gradle/wrapper/gradle-wrapper.jar | Bin 59203 -> 0 bytes code/gradlew | 185 ------------- code/gradle.properties => gradle.properties | 4 +- gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 43462 bytes .../wrapper/gradle-wrapper.properties | 5 +- gradlew | 249 ++++++++++++++++++ code/gradlew.bat => gradlew.bat | 15 +- ...settings.gradle.kts => settings.gradle.kts | 8 +- 62 files changed, 706 insertions(+), 356 deletions(-) create mode 100644 .idea/.gitignore create mode 100644 .idea/.name create mode 100644 .idea/AndroidProjectSystem.xml create mode 100644 .idea/compiler.xml create mode 100644 .idea/deploymentTargetSelector.xml create mode 100644 .idea/gradle.xml create mode 100644 .idea/migrations.xml create mode 100644 .idea/misc.xml create mode 100644 .idea/runConfigurations.xml create mode 100644 .idea/vcs.xml rename {code/app => app}/.gitignore (100%) rename {code/app => app}/build.gradle.kts (50%) rename {code/app => app}/proguard-rules.pro (100%) rename {code/app => app}/src/androidTest/java/com/example/listycitylab3/ExampleInstrumentedTest.java (100%) rename {code/app => app}/src/main/AndroidManifest.xml (100%) create mode 100644 app/src/main/java/com/example/listycitylab3/AddCityFragment.java create mode 100644 app/src/main/java/com/example/listycitylab3/City.java create mode 100644 app/src/main/java/com/example/listycitylab3/CityArrayAdapter.java create mode 100644 app/src/main/java/com/example/listycitylab3/MainActivity.java rename {code/app => app}/src/main/res/drawable/ic_launcher_background.xml (100%) rename {code/app => app}/src/main/res/drawable/ic_launcher_foreground.xml (100%) create mode 100644 app/src/main/res/layout/activity_main.xml create mode 100644 app/src/main/res/layout/content.xml create mode 100644 app/src/main/res/layout/fragment_add_city.xml rename {code/app => app}/src/main/res/mipmap-anydpi-v26/ic_launcher.xml (100%) rename {code/app => app}/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml (100%) rename {code/app => app}/src/main/res/mipmap-hdpi/ic_launcher.webp (100%) rename {code/app => app}/src/main/res/mipmap-hdpi/ic_launcher_round.webp (100%) rename {code/app => app}/src/main/res/mipmap-mdpi/ic_launcher.webp (100%) rename {code/app => app}/src/main/res/mipmap-mdpi/ic_launcher_round.webp (100%) rename {code/app => app}/src/main/res/mipmap-xhdpi/ic_launcher.webp (100%) rename {code/app => app}/src/main/res/mipmap-xhdpi/ic_launcher_round.webp (100%) rename {code/app => app}/src/main/res/mipmap-xxhdpi/ic_launcher.webp (100%) rename {code/app => app}/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp (100%) rename {code/app => app}/src/main/res/mipmap-xxxhdpi/ic_launcher.webp (100%) rename {code/app => app}/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp (100%) rename {code/app => app}/src/main/res/values-night/themes.xml (100%) rename {code/app => app}/src/main/res/values/colors.xml (100%) rename {code/app => app}/src/main/res/values/strings.xml (100%) create mode 100644 app/src/main/res/values/themes.xml rename {code/app => app}/src/main/res/xml/backup_rules.xml (100%) rename {code/app => app}/src/main/res/xml/data_extraction_rules.xml (100%) rename {code/app => app}/src/test/java/com/example/listycitylab3/ExampleUnitTest.java (100%) delete mode 100644 assets/img1.png delete mode 100644 assets/img2.png delete mode 100644 assets/img3.png delete mode 100644 assets/img4.png rename code/build.gradle.kts => build.gradle.kts (63%) delete mode 100644 code/app/src/main/java/com/example/listycitylab3/MainActivity.java delete mode 100644 code/app/src/main/res/layout/activity_main.xml delete mode 100644 code/app/src/main/res/layout/content.xml delete mode 100644 code/app/src/main/res/values/themes.xml delete mode 100644 code/gradle/libs.versions.toml delete mode 100644 code/gradle/wrapper/gradle-wrapper.jar delete mode 100644 code/gradlew rename code/gradle.properties => gradle.properties (86%) create mode 100644 gradle/wrapper/gradle-wrapper.jar rename {code/gradle => gradle}/wrapper/gradle-wrapper.properties (74%) create mode 100644 gradlew rename code/gradlew.bat => gradlew.bat (89%) rename code/settings.gradle.kts => settings.gradle.kts (58%) diff --git a/.gitignore b/.gitignore index f7169b67..aa724b77 100644 --- a/.gitignore +++ b/.gitignore @@ -1,34 +1,15 @@ -# Gradle files -.gradle/ -build/ - -# Local configuration file (sdk path, etc) -local.properties - -# Log/OS Files -*.log -.DS_Store - -# Android Studio generated files and folders -captures/ -.externalNativeBuild/ -.cxx/ -*.apk -output.json - -# IntelliJ *.iml -.idea/ -misc.xml -deploymentTargetDropDown.xml -render.experimental.xml - -# Keystore files -*.jks -*.keystore - -# Google Services (e.g. APIs or Firebase) -google-services.json - -# Android Profiling -*.hprof +.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/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 00000000..26d33521 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/.idea/.name b/.idea/.name new file mode 100644 index 00000000..95002d9f --- /dev/null +++ b/.idea/.name @@ -0,0 +1 @@ +ListyCityLab3 \ No newline at end of file diff --git a/.idea/AndroidProjectSystem.xml b/.idea/AndroidProjectSystem.xml new file mode 100644 index 00000000..4a53bee8 --- /dev/null +++ b/.idea/AndroidProjectSystem.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/.idea/compiler.xml b/.idea/compiler.xml new file mode 100644 index 00000000..b86273d9 --- /dev/null +++ b/.idea/compiler.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/deploymentTargetSelector.xml b/.idea/deploymentTargetSelector.xml new file mode 100644 index 00000000..b268ef36 --- /dev/null +++ b/.idea/deploymentTargetSelector.xml @@ -0,0 +1,10 @@ + + + + + + + + + \ No newline at end of file diff --git a/.idea/gradle.xml b/.idea/gradle.xml new file mode 100644 index 00000000..639c779c --- /dev/null +++ b/.idea/gradle.xml @@ -0,0 +1,19 @@ + + + + + + + \ No newline at end of file diff --git a/.idea/migrations.xml b/.idea/migrations.xml new file mode 100644 index 00000000..f8051a6f --- /dev/null +++ b/.idea/migrations.xml @@ -0,0 +1,10 @@ + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 00000000..b2c751a3 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,9 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/runConfigurations.xml b/.idea/runConfigurations.xml new file mode 100644 index 00000000..16660f1d --- /dev/null +++ b/.idea/runConfigurations.xml @@ -0,0 +1,17 @@ + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 00000000..94a25f7f --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/code/app/.gitignore b/app/.gitignore similarity index 100% rename from code/app/.gitignore rename to app/.gitignore diff --git a/code/app/build.gradle.kts b/app/build.gradle.kts similarity index 50% rename from code/app/build.gradle.kts rename to app/build.gradle.kts index 35762ff0..8e4c27d0 100644 --- a/code/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -1,15 +1,15 @@ plugins { - alias(libs.plugins.android.application) + id("com.android.application") } android { namespace = "com.example.listycitylab3" - compileSdk = 35 + compileSdk = 34 defaultConfig { applicationId = "com.example.listycitylab3" minSdk = 24 - targetSdk = 35 + targetSdk = 33 versionCode = 1 versionName = "1.0" @@ -26,18 +26,17 @@ android { } } compileOptions { - sourceCompatibility = JavaVersion.VERSION_11 - targetCompatibility = JavaVersion.VERSION_11 + 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) + implementation("androidx.appcompat:appcompat:1.7.0") + implementation("com.google.android.material:material:1.12.0") + implementation("androidx.constraintlayout:constraintlayout:2.1.4") + testImplementation("junit:junit:4.13.2") + androidTestImplementation("androidx.test.ext:junit:1.2.1") + androidTestImplementation("androidx.test.espresso:espresso-core:3.6.1") } \ No newline at end of file diff --git a/code/app/proguard-rules.pro b/app/proguard-rules.pro similarity index 100% rename from code/app/proguard-rules.pro rename to app/proguard-rules.pro diff --git a/code/app/src/androidTest/java/com/example/listycitylab3/ExampleInstrumentedTest.java b/app/src/androidTest/java/com/example/listycitylab3/ExampleInstrumentedTest.java similarity index 100% rename from code/app/src/androidTest/java/com/example/listycitylab3/ExampleInstrumentedTest.java rename to app/src/androidTest/java/com/example/listycitylab3/ExampleInstrumentedTest.java diff --git a/code/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml similarity index 100% rename from code/app/src/main/AndroidManifest.xml rename to app/src/main/AndroidManifest.xml diff --git a/app/src/main/java/com/example/listycitylab3/AddCityFragment.java b/app/src/main/java/com/example/listycitylab3/AddCityFragment.java new file mode 100644 index 00000000..83aadfd0 --- /dev/null +++ b/app/src/main/java/com/example/listycitylab3/AddCityFragment.java @@ -0,0 +1,99 @@ +package com.example.listycitylab3; + +import android.app.AlertDialog; +import android.app.Dialog; +import android.content.Context; +import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.View; +import android.widget.EditText; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.fragment.app.DialogFragment; + +// extended the dialog fragment class +public class AddCityFragment extends DialogFragment { + interface AddCityDialogListener { + void addCity(City city); + // extended listener interface to distinguish between adding and editing a city so that the fragment can call editCity() when editing + void editCity(City oldCity, City editedCity); + } + + // defined the AddCityDialogListener interface inside the class and then added a private AddCityDialogListener attribute named listener + private AddCityDialogListener listener; + + // override onAttach method + // listener provides the reusability of the fragment + @Override + public void onAttach(@NonNull Context context) { + + super.onAttach(context); + if (context instanceof AddCityDialogListener) { + listener = (AddCityDialogListener) context; + } else { + throw new RuntimeException(context + " must implement AddCityDialogListener"); + } + } + + // TODO: we need to add functionality to allow editing an existing city + + // pass the city object that is clicked in the Activity into the Fragment + // add a "newInstance" method in the Fragment, and use this method to create a new Fragment when editing a City + + // we have to take in a city and store it in the fragment's bundle object (storing data in a Bundle is similar to storing data in an Intent using key-value pairs + static AddCityFragment newInstance(City city){ + Bundle args = new Bundle(); + args.putSerializable("city", city); + AddCityFragment fragment = new AddCityFragment(); + fragment.setArguments(args); + return fragment; + } + + // override onCreateDialog method + // we customize the dialog and bind the views + @NonNull + @Override + public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) { + + View view = + LayoutInflater.from(getContext()).inflate(R.layout.fragment_add_city, null); + EditText editCityName = view.findViewById(R.id.edit_text_city_text); + EditText editProvinceName = view.findViewById(R.id.edit_text_province_text); + // (for editing a city/province) access the bundle using GetArguments() and retrieve the City object there + // need to check whether a City was passed in arguments, if yes -> editing mode, otherwise -> adding mode + City cityToEdit = null; + if (getArguments() != null){ + // this means i have a city to edit + cityToEdit = (City) getArguments().getSerializable("city"); + if(cityToEdit != null){ + editCityName.setText(cityToEdit.getName()); + editProvinceName.setText(cityToEdit.getProvince()); + } + } + + City finalCityToEdit = cityToEdit; // effectively final for lambda + + AlertDialog.Builder builder = new AlertDialog.Builder(getContext()); + return builder + .setView(view) + // modified the line below to work for both adding and editing modes + .setTitle(cityToEdit == null ? "Add New City" : "Edit City") + .setNegativeButton("Cancel", null) + // modified the lines below to work for both adding and editing modes + .setPositiveButton(cityToEdit == null ? "Add" : "Save", (dialog, which) -> { + String cityName = editCityName.getText().toString(); + String provinceName = editProvinceName.getText().toString(); + + if (finalCityToEdit == null) { + // Adding a new city + listener.addCity(new City(cityName, provinceName)); + } else { + // Editing existing city + City updated = new City(cityName, provinceName); + listener.editCity(finalCityToEdit, updated); + } + }) + .create(); + } +} \ No newline at end of file diff --git a/app/src/main/java/com/example/listycitylab3/City.java b/app/src/main/java/com/example/listycitylab3/City.java new file mode 100644 index 00000000..96386c93 --- /dev/null +++ b/app/src/main/java/com/example/listycitylab3/City.java @@ -0,0 +1,36 @@ +package com.example.listycitylab3; + +import java.io.Serializable; + +// created a new class for cities to provide more features than a string literal +// city class should implement the "Serializable" interface, so that it can be saved into the Bundle +public class City implements Serializable { + + // added two private attributes, name and province + private String name; + private String province; + + // added a constructor with two parameters and initialized the class attributes we just declared inside it + public City(String name, String province) { + this.name = name; + this.province = province; + } + + // added getters for the attributes + public String getName() { + return name; + } + public String getProvince() { + return province; + } + + // added setters to the City class so that I can modify its name and province + public void setName(String newName){ + this.name = newName; + } + + public void setProvince(String newProvince){ + this.province = newProvince; + } + +} \ No newline at end of file diff --git a/app/src/main/java/com/example/listycitylab3/CityArrayAdapter.java b/app/src/main/java/com/example/listycitylab3/CityArrayAdapter.java new file mode 100644 index 00000000..71f48e54 --- /dev/null +++ b/app/src/main/java/com/example/listycitylab3/CityArrayAdapter.java @@ -0,0 +1,41 @@ +package com.example.listycitylab3; + +import android.content.Context; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ArrayAdapter; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +import java.util.ArrayList; + +// the original ArrayAdapter cannot meet the requirements for displaying extra information that I have +// I have to extend the ArrayAdapter class and override getView() to return the type of view I want for each item +public class CityArrayAdapter extends ArrayAdapter { + public CityArrayAdapter(Context context, ArrayList cities) { + super(context, 0, cities); + } + + // override getView() method + @NonNull + @Override + public View getView(int position, @Nullable View convertView, @NonNull ViewGroup + parent) { + View view; + if (convertView == null) { + view = LayoutInflater.from(getContext()).inflate(R.layout.content, + parent, false); + } else { + view = convertView; + } + City city = getItem(position); + TextView cityName = view.findViewById(R.id.city_text); + TextView provinceName = view.findViewById(R.id.province_text); + cityName.setText(city.getName()); + provinceName.setText(city.getProvince()); + return view; + } +} \ No newline at end of file diff --git a/app/src/main/java/com/example/listycitylab3/MainActivity.java b/app/src/main/java/com/example/listycitylab3/MainActivity.java new file mode 100644 index 00000000..40d36813 --- /dev/null +++ b/app/src/main/java/com/example/listycitylab3/MainActivity.java @@ -0,0 +1,74 @@ +package com.example.listycitylab3; + +import androidx.appcompat.app.AppCompatActivity; + +import android.os.Bundle; +import android.widget.ArrayAdapter; +import android.widget.ListView; + +import com.google.android.material.floatingactionbutton.FloatingActionButton; + +import java.util.ArrayList; +import java.util.Arrays; + +// implemented AddCityDialogListener so that we can add the new city into our dataList +public class MainActivity extends AppCompatActivity implements AddCityFragment.AddCityDialogListener{ + + // changed type of dataList and cityAdapter. + private ArrayList dataList; + private ListView cityList; + private ArrayAdapter cityAdapter; + + @Override + public void addCity(City city) { + cityAdapter.add(city); + cityAdapter.notifyDataSetChanged(); + } + + // implement the new editCity() method + public void editCity(City oldCity, City editedCity) { + int index = dataList.indexOf(oldCity); + if (index != -1) { + dataList.set(index, editedCity); + cityAdapter.notifyDataSetChanged(); + } + } + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + + // create two lists of strings, one for the name of the city and the other for the name of the province + String[] cities = { "Edmonton", "Vancouver", "Toronto" }; + String[] provinces = { "AB", "BC", "ON" }; + + // changed the type of the dataList attribute to ArrayList + dataList = new ArrayList(); + + // created City objects as the data according to the two lists of strings and them into dataList + for (int i = 0; i < cities.length; i++) { + dataList.add(new City(cities[i], provinces[i])); + } + cityList = findViewById(R.id.city_list); + + // changed the type of the cityAdapter attribute to our CityArrayAdapter and initialized it + cityAdapter = new CityArrayAdapter(this, dataList); + cityList.setAdapter(cityAdapter); + + // added an on-click listener for the button in this onCreate method + FloatingActionButton fab = findViewById(R.id.button_add_city); + // this parameter -> expression syntax is a lambda expression as the onClickListener + fab.setOnClickListener(v -> { + new AddCityFragment().show(getSupportFragmentManager(), "Add City"); + }); + + + // adding this so tapping a city opens the edit dialog + cityList.setOnItemClickListener((parent, view, position, id) -> { + City city = dataList.get(position); + AddCityFragment.newInstance(city) + .show(getSupportFragmentManager(), "Edit City"); + }); + } +} \ No newline at end of file diff --git a/code/app/src/main/res/drawable/ic_launcher_background.xml b/app/src/main/res/drawable/ic_launcher_background.xml similarity index 100% rename from code/app/src/main/res/drawable/ic_launcher_background.xml rename to app/src/main/res/drawable/ic_launcher_background.xml diff --git a/code/app/src/main/res/drawable/ic_launcher_foreground.xml b/app/src/main/res/drawable/ic_launcher_foreground.xml similarity index 100% rename from code/app/src/main/res/drawable/ic_launcher_foreground.xml rename to app/src/main/res/drawable/ic_launcher_foreground.xml diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml new file mode 100644 index 00000000..3cf65718 --- /dev/null +++ b/app/src/main/res/layout/activity_main.xml @@ -0,0 +1,24 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/content.xml b/app/src/main/res/layout/content.xml new file mode 100644 index 00000000..7ba125de --- /dev/null +++ b/app/src/main/res/layout/content.xml @@ -0,0 +1,22 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_add_city.xml b/app/src/main/res/layout/fragment_add_city.xml new file mode 100644 index 00000000..e0f707ba --- /dev/null +++ b/app/src/main/res/layout/fragment_add_city.xml @@ -0,0 +1,24 @@ + + + + + + + + + diff --git a/code/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml similarity index 100% rename from code/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml rename to app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml diff --git a/code/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml similarity index 100% rename from code/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml rename to app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml diff --git a/code/app/src/main/res/mipmap-hdpi/ic_launcher.webp b/app/src/main/res/mipmap-hdpi/ic_launcher.webp similarity index 100% rename from code/app/src/main/res/mipmap-hdpi/ic_launcher.webp rename to app/src/main/res/mipmap-hdpi/ic_launcher.webp diff --git a/code/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp similarity index 100% rename from code/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp rename to app/src/main/res/mipmap-hdpi/ic_launcher_round.webp diff --git a/code/app/src/main/res/mipmap-mdpi/ic_launcher.webp b/app/src/main/res/mipmap-mdpi/ic_launcher.webp similarity index 100% rename from code/app/src/main/res/mipmap-mdpi/ic_launcher.webp rename to app/src/main/res/mipmap-mdpi/ic_launcher.webp diff --git a/code/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp similarity index 100% rename from code/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp rename to app/src/main/res/mipmap-mdpi/ic_launcher_round.webp diff --git a/code/app/src/main/res/mipmap-xhdpi/ic_launcher.webp b/app/src/main/res/mipmap-xhdpi/ic_launcher.webp similarity index 100% rename from code/app/src/main/res/mipmap-xhdpi/ic_launcher.webp rename to app/src/main/res/mipmap-xhdpi/ic_launcher.webp diff --git a/code/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp similarity index 100% rename from code/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp rename to app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp diff --git a/code/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp b/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp similarity index 100% rename from code/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp rename to app/src/main/res/mipmap-xxhdpi/ic_launcher.webp diff --git a/code/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp similarity index 100% rename from code/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp rename to app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp diff --git a/code/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp b/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp similarity index 100% rename from code/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp rename to app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp diff --git a/code/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp similarity index 100% rename from code/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp rename to app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp diff --git a/code/app/src/main/res/values-night/themes.xml b/app/src/main/res/values-night/themes.xml similarity index 100% rename from code/app/src/main/res/values-night/themes.xml rename to app/src/main/res/values-night/themes.xml diff --git a/code/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml similarity index 100% rename from code/app/src/main/res/values/colors.xml rename to app/src/main/res/values/colors.xml diff --git a/code/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml similarity index 100% rename from code/app/src/main/res/values/strings.xml rename to app/src/main/res/values/strings.xml diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml new file mode 100644 index 00000000..5d48cf86 --- /dev/null +++ b/app/src/main/res/values/themes.xml @@ -0,0 +1,9 @@ + + + + + - -