From b4029d09dd02f1be6722230d25f2d7fadef964cc Mon Sep 17 00:00:00 2001 From: Stepan Date: Wed, 7 May 2025 12:14:04 +0200 Subject: [PATCH] init --- .gitignore | 15 ++ .idea/.gitignore | 3 + .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 ++ README.md | 23 +++ app/.gitignore | 1 + app/build.gradle.kts | 45 +++++ app/proguard-rules.pro | 21 ++ .../travelling/ExampleInstrumentedTest.java | 26 +++ app/src/main/AndroidManifest.xml | 38 ++++ .../com/example/travelling/MainActivity.java | 61 ++++++ .../example/travelling/ResultActivity.java | 41 ++++ .../java/com/example/travelling/Splash.java | 36 ++++ .../res/drawable/ic_launcher_background.xml | 170 ++++++++++++++++ .../res/drawable/ic_launcher_foreground.xml | 30 +++ app/src/main/res/drawable/travel_logo.png | Bin 0 -> 4603 bytes app/src/main/res/layout/activity_main.xml | 100 ++++++++++ app/src/main/res/layout/activity_result.xml | 102 ++++++++++ app/src/main/res/layout/activity_splash.xml | 20 ++ .../main/res/mipmap-anydpi/ic_launcher.xml | 6 + .../res/mipmap-anydpi/ic_launcher_round.xml | 6 + app/src/main/res/mipmap-hdpi/ic_launcher.webp | Bin 0 -> 1404 bytes .../res/mipmap-hdpi/ic_launcher_round.webp | Bin 0 -> 2898 bytes app/src/main/res/mipmap-mdpi/ic_launcher.webp | Bin 0 -> 982 bytes .../res/mipmap-mdpi/ic_launcher_round.webp | Bin 0 -> 1772 bytes .../main/res/mipmap-xhdpi/ic_launcher.webp | Bin 0 -> 1900 bytes .../res/mipmap-xhdpi/ic_launcher_round.webp | Bin 0 -> 3918 bytes .../main/res/mipmap-xxhdpi/ic_launcher.webp | Bin 0 -> 2884 bytes .../res/mipmap-xxhdpi/ic_launcher_round.webp | Bin 0 -> 5914 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.webp | Bin 0 -> 3844 bytes .../res/mipmap-xxxhdpi/ic_launcher_round.webp | Bin 0 -> 7778 bytes app/src/main/res/values-night/themes.xml | 7 + app/src/main/res/values/colors.xml | 5 + app/src/main/res/values/strings.xml | 3 + app/src/main/res/values/themes.xml | 9 + app/src/main/res/xml/backup_rules.xml | 13 ++ .../main/res/xml/data_extraction_rules.xml | 19 ++ .../example/travelling/ExampleUnitTest.java | 17 ++ build.gradle.kts | 4 + gradle.properties | 21 ++ gradle/libs.versions.toml | 22 +++ gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 59203 bytes gradle/wrapper/gradle-wrapper.properties | 6 + gradlew | 185 ++++++++++++++++++ gradlew.bat | 89 +++++++++ readme_media/main_activity.png | Bin 0 -> 35089 bytes readme_media/result_activity.png | Bin 0 -> 17089 bytes readme_media/split_activity.png | Bin 0 -> 20703 bytes settings.gradle.kts | 24 +++ 54 files changed, 1245 insertions(+) create mode 100644 .gitignore create mode 100644 .idea/.gitignore 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 README.md create mode 100644 app/.gitignore create mode 100644 app/build.gradle.kts create mode 100644 app/proguard-rules.pro create mode 100644 app/src/androidTest/java/com/example/travelling/ExampleInstrumentedTest.java create mode 100644 app/src/main/AndroidManifest.xml create mode 100644 app/src/main/java/com/example/travelling/MainActivity.java create mode 100644 app/src/main/java/com/example/travelling/ResultActivity.java create mode 100644 app/src/main/java/com/example/travelling/Splash.java create mode 100644 app/src/main/res/drawable/ic_launcher_background.xml create mode 100644 app/src/main/res/drawable/ic_launcher_foreground.xml create mode 100644 app/src/main/res/drawable/travel_logo.png create mode 100644 app/src/main/res/layout/activity_main.xml create mode 100644 app/src/main/res/layout/activity_result.xml create mode 100644 app/src/main/res/layout/activity_splash.xml create mode 100644 app/src/main/res/mipmap-anydpi/ic_launcher.xml create mode 100644 app/src/main/res/mipmap-anydpi/ic_launcher_round.xml create mode 100644 app/src/main/res/mipmap-hdpi/ic_launcher.webp create mode 100644 app/src/main/res/mipmap-hdpi/ic_launcher_round.webp create mode 100644 app/src/main/res/mipmap-mdpi/ic_launcher.webp create mode 100644 app/src/main/res/mipmap-mdpi/ic_launcher_round.webp create mode 100644 app/src/main/res/mipmap-xhdpi/ic_launcher.webp create mode 100644 app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp create mode 100644 app/src/main/res/mipmap-xxhdpi/ic_launcher.webp create mode 100644 app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp create mode 100644 app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp create mode 100644 app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp create mode 100644 app/src/main/res/values-night/themes.xml create mode 100644 app/src/main/res/values/colors.xml create mode 100644 app/src/main/res/values/strings.xml create mode 100644 app/src/main/res/values/themes.xml create mode 100644 app/src/main/res/xml/backup_rules.xml create mode 100644 app/src/main/res/xml/data_extraction_rules.xml create mode 100644 app/src/test/java/com/example/travelling/ExampleUnitTest.java create mode 100644 build.gradle.kts create mode 100644 gradle.properties create mode 100644 gradle/libs.versions.toml create mode 100644 gradle/wrapper/gradle-wrapper.jar create mode 100644 gradle/wrapper/gradle-wrapper.properties create mode 100755 gradlew create mode 100644 gradlew.bat create mode 100644 readme_media/main_activity.png create mode 100644 readme_media/result_activity.png create mode 100644 readme_media/split_activity.png create mode 100644 settings.gradle.kts diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..aa724b7 --- /dev/null +++ b/.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/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..26d3352 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/.idea/AndroidProjectSystem.xml b/.idea/AndroidProjectSystem.xml new file mode 100644 index 0000000..4a53bee --- /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 0000000..b86273d --- /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 0000000..b268ef3 --- /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 0000000..639c779 --- /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 0000000..f8051a6 --- /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 0000000..b2c751a --- /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 0000000..16660f1 --- /dev/null +++ b/.idea/runConfigurations.xml @@ -0,0 +1,17 @@ + + + + + + \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..b0afe71 --- /dev/null +++ b/README.md @@ -0,0 +1,23 @@ +# Travelling app + +> This is a school homework project. It is created for educational purposes only and is not intended for commercial use. + +## 📁 Main Files + +### Scripts + +- [MainActivity.java](app/src/main/java/com/example/travelling/MainActivity.java) +- [Splash.java](app/src/main/java/com/example/travelling/Splash.java) +- [ResultActivity.java](app/src/main/java/com/example/travelling/ResultActivity.java) + +### Activities + +- [activity_main.xml](/app/src/main/res/layout/activity_main.xml) +- [activity_result.xml](/app/src/main/res/layout/activity_result.xml) +- [activity_splash.xml](/app/src/main/res/layout/activity_splash.xml) + +## Screenshots + +| activity_splash.xml | activity_main.xml | activity_result.xml | +| --- | --- | --- | +| ![splash](readme_media/split_activity.png) | ![main](readme_media/main_activity.png) | ![result](readme_media/result_activity.png) \ No newline at end of file diff --git a/app/.gitignore b/app/.gitignore new file mode 100644 index 0000000..42afabf --- /dev/null +++ b/app/.gitignore @@ -0,0 +1 @@ +/build \ No newline at end of file diff --git a/app/build.gradle.kts b/app/build.gradle.kts new file mode 100644 index 0000000..b0651c6 --- /dev/null +++ b/app/build.gradle.kts @@ -0,0 +1,45 @@ +plugins { + alias(libs.plugins.android.application) +} + +android { + namespace = "com.example.travelling" + compileSdk = 35 + + defaultConfig { + applicationId = "com.example.travelling" + minSdk = 26 + targetSdk = 35 + versionCode = 1 + versionName = "1.0" + + testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" + } + buildFeatures { + viewBinding = true + } + buildTypes { + release { + isMinifyEnabled = false + proguardFiles( + getDefaultProguardFile("proguard-android-optimize.txt"), + "proguard-rules.pro" + ) + } + } + compileOptions { + sourceCompatibility = JavaVersion.VERSION_11 + targetCompatibility = JavaVersion.VERSION_11 + } +} + +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/app/proguard-rules.pro b/app/proguard-rules.pro new file mode 100644 index 0000000..481bb43 --- /dev/null +++ b/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/app/src/androidTest/java/com/example/travelling/ExampleInstrumentedTest.java b/app/src/androidTest/java/com/example/travelling/ExampleInstrumentedTest.java new file mode 100644 index 0000000..116fed0 --- /dev/null +++ b/app/src/androidTest/java/com/example/travelling/ExampleInstrumentedTest.java @@ -0,0 +1,26 @@ +package com.example.travelling; + +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.travelling", appContext.getPackageName()); + } +} \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000..d622def --- /dev/null +++ b/app/src/main/AndroidManifest.xml @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/java/com/example/travelling/MainActivity.java b/app/src/main/java/com/example/travelling/MainActivity.java new file mode 100644 index 0000000..11ba664 --- /dev/null +++ b/app/src/main/java/com/example/travelling/MainActivity.java @@ -0,0 +1,61 @@ +package com.example.travelling; + +import android.content.Intent; +import android.os.Bundle; +import android.view.View; +import android.widget.RadioButton; +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 com.example.travelling.databinding.ActivityMainBinding; + +public class MainActivity extends AppCompatActivity { + + private ActivityMainBinding binding; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + EdgeToEdge.enable(this); + // setContentView(R.layout.activity_main); + + binding = ActivityMainBinding.inflate(getLayoutInflater()); + View view = binding.getRoot(); + setContentView(view); + + binding.btnConfirm.setOnClickListener(this::ConfirmButton); + } + + public void ConfirmButton(View view) { + try { + String name = binding.nameInput.getText().toString(); + String date = binding.dateInput.getText().toString(); + + int citySelectedId = binding.cityRadioGroup.getCheckedRadioButtonId(); + RadioButton selectedRadioButton = binding.getRoot().findViewById(citySelectedId); + String city = selectedRadioButton.getText().toString(); + + boolean isVip = binding.vipSwitch.isChecked(); + boolean hasInsurance = binding.insurance.isChecked(); + + Intent resultIntent = new Intent(this, ResultActivity.class); + + resultIntent.putExtra("NAME", name); + resultIntent.putExtra("DATE", date); + resultIntent.putExtra("CITY", city); + resultIntent.putExtra("IS_VIP", isVip); + resultIntent.putExtra("HAS_INSURANCE", hasInsurance); + + startActivity(resultIntent); + } + catch (NullPointerException ex) { + Toast toast = Toast.makeText(this, "You haven't filled all fields", Toast.LENGTH_LONG); + toast.show(); + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/example/travelling/ResultActivity.java b/app/src/main/java/com/example/travelling/ResultActivity.java new file mode 100644 index 0000000..691d7f5 --- /dev/null +++ b/app/src/main/java/com/example/travelling/ResultActivity.java @@ -0,0 +1,41 @@ +package com.example.travelling; + +import android.content.Intent; +import android.os.Bundle; +import android.view.View; + +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 com.example.travelling.databinding.ActivityResultBinding; + +public class ResultActivity extends AppCompatActivity { + + private ActivityResultBinding binding; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + EdgeToEdge.enable(this); + + binding = ActivityResultBinding.inflate(getLayoutInflater()); + View view = binding.getRoot(); + setContentView(view); + + Intent intent = getIntent(); + String name = intent.getStringExtra("NAME"); + String date = intent.getStringExtra("DATE"); + String city = intent.getStringExtra("CITY"); + boolean hasInsurance = intent.getBooleanExtra("HAS_INSURANCE", false); + boolean isVip = intent.getBooleanExtra("IS_VIP", false); + + binding.nameText.setText(name); + binding.dateText.setText(date); + binding.cityText.setText(city); + binding.insuranceText.setText(hasInsurance ? "Yes" : "No"); + binding.vipText.setText(isVip ? "Yes" : "No"); + } +} \ No newline at end of file diff --git a/app/src/main/java/com/example/travelling/Splash.java b/app/src/main/java/com/example/travelling/Splash.java new file mode 100644 index 0000000..7c852ba --- /dev/null +++ b/app/src/main/java/com/example/travelling/Splash.java @@ -0,0 +1,36 @@ +package com.example.travelling; + +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; + +public class Splash extends AppCompatActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + EdgeToEdge.enable(this); + setContentView(R.layout.activity_splash); + + Thread thread = new Thread() { + @Override + public void run() { + try { + sleep(3000); + } catch (InterruptedException e) { + throw new RuntimeException(e); + } finally { + Intent mainActivityIntent = new Intent(Splash.this, MainActivity.class); + + startActivity(mainActivityIntent); + } + } + }; + thread.start(); + } +} \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_launcher_background.xml b/app/src/main/res/drawable/ic_launcher_background.xml new file mode 100644 index 0000000..07d5da9 --- /dev/null +++ b/app/src/main/res/drawable/ic_launcher_background.xml @@ -0,0 +1,170 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/ic_launcher_foreground.xml b/app/src/main/res/drawable/ic_launcher_foreground.xml new file mode 100644 index 0000000..2b068d1 --- /dev/null +++ b/app/src/main/res/drawable/ic_launcher_foreground.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/travel_logo.png b/app/src/main/res/drawable/travel_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..bd3dab8cf62d9fe333c6f46536c6e7f63cfced0d GIT binary patch literal 4603 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 G5dD7^zJEIa literal 0 HcmV?d00001 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 0000000..a53dbcb --- /dev/null +++ b/app/src/main/res/layout/activity_main.xml @@ -0,0 +1,100 @@ + + + + + + + + + + + + + + + + + + + + + + +