commit caf8dd38f217513f0a09d21e2f1b6b3d42561dc4 Author: Stepan Date: Wed May 21 11:45:13 2025 +0200 init 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..74dd639 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,10 @@ + + + + + + + + + \ 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..5d7f838 --- /dev/null +++ b/README.md @@ -0,0 +1,34 @@ +# Countries + +> This is a school homework project. It is created for educational purposes only and is not intended for commercial use. + +## 📁 Main Files + +### Scripts + +- [SplashActivity.java](app/src/main/java/com/example/countries/SplashActivity.java) +- [MainActivity.java](app/src/main/java/com/example/countries/MainActivity.java) +- [DetailActivity.java](app/src/main/java/com/example/countries/DetailActivity.java) +--- +- [CountryModel.java](app/src/main/java/com/example/countries/CountryModel.java) +- [CountryAdapter.java](app/src/main/java/com/example/countries/CountryAdapter.java) + +### Activities + +- [activity_splash.xml](/app/src/main/res/layout/activity_splash.xml) +- [activity_main.xml](/app/src/main/res/layout/activity_main.xml) +- [activity_detail.xml](/app/src/main/res/layout/activity_detail.xml) +--- +- [list_item.xml](/app/src/main/res/layout/list_item.xml) + +### Other + +- [anim/](/app/src/main/res/anim/) - animations +- [strings.xml](/app/src/main/res/values/strings.xml) - Default language +- [strings.xml (sr-RS)](/app/src/main/res/values-sr-rRS/strings.xml) - Serbia language + +## Screenshots + +| activity_splash.xml | activity_main.xml | activity_detail.xml | +| --- | --- | --- | +| ![splash](readme_media/splash.png) | ![main](readme_media/main.png) | ![detail](readme_media/detail.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..eca0aeb --- /dev/null +++ b/app/build.gradle.kts @@ -0,0 +1,47 @@ +plugins { + alias(libs.plugins.android.application) +} + +android { + namespace = "com.example.countries" + compileSdk = 35 + + defaultConfig { + applicationId = "com.example.countries" + 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/countries/ExampleInstrumentedTest.java b/app/src/androidTest/java/com/example/countries/ExampleInstrumentedTest.java new file mode 100644 index 0000000..12b27be --- /dev/null +++ b/app/src/androidTest/java/com/example/countries/ExampleInstrumentedTest.java @@ -0,0 +1,26 @@ +package com.example.countries; + +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.countries", 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..bd62a88 --- /dev/null +++ b/app/src/main/AndroidManifest.xml @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/java/com/example/countries/CountryAdapter.java b/app/src/main/java/com/example/countries/CountryAdapter.java new file mode 100644 index 0000000..9c3c787 --- /dev/null +++ b/app/src/main/java/com/example/countries/CountryAdapter.java @@ -0,0 +1,40 @@ +package com.example.countries; + +import android.content.Context; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ArrayAdapter; +import android.widget.ImageView; +import android.widget.TextView; + +import androidx.annotation.NonNull; + +import java.util.ArrayList; + +public class CountryAdapter extends ArrayAdapter { + public CountryAdapter(Context context, ArrayList countries) { + super(context, 0, countries); + } + + @NonNull + @Override + public View getView(int position, View convertView, @NonNull ViewGroup parent) { + CountryModel country = getItem(position); + + if (convertView == null) { + convertView = LayoutInflater.from(getContext()).inflate(R.layout.list_item, parent, false); + } + + ImageView imageView = convertView.findViewById(R.id.flagImage); + TextView nameView = convertView.findViewById(R.id.countryNameText); + TextView cityView = convertView.findViewById(R.id.cityText); + + assert country != null; + imageView.setImageResource(country.imageResId); + nameView.setText(country.nameResId); + cityView.setText(country.cityResId); + + return convertView; + } +} diff --git a/app/src/main/java/com/example/countries/CountryModel.java b/app/src/main/java/com/example/countries/CountryModel.java new file mode 100644 index 0000000..4e4cd8a --- /dev/null +++ b/app/src/main/java/com/example/countries/CountryModel.java @@ -0,0 +1,17 @@ +package com.example.countries; + +import java.io.Serializable; + +public class CountryModel implements Serializable { + int nameResId; + int cityResId; + int descriptionResId; + int imageResId; + + public CountryModel(int nameResId, int cityResId, int descriptionResId, int imageResId) { + this.nameResId = nameResId; + this.cityResId = cityResId; + this.descriptionResId = descriptionResId; + this.imageResId = imageResId; + } +} diff --git a/app/src/main/java/com/example/countries/DetailActivity.java b/app/src/main/java/com/example/countries/DetailActivity.java new file mode 100644 index 0000000..620b62e --- /dev/null +++ b/app/src/main/java/com/example/countries/DetailActivity.java @@ -0,0 +1,43 @@ +package com.example.countries; + +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.countries.databinding.ActivityDetailBinding; + +public class DetailActivity extends AppCompatActivity { + + private CountryModel country; + private ActivityDetailBinding binding; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + EdgeToEdge.enable(this); + + binding = ActivityDetailBinding.inflate(getLayoutInflater()); + View view = binding.getRoot(); + setContentView(view); + + Intent intent = getIntent(); + country = (CountryModel)intent.getSerializableExtra("COUNTRY"); + + assert country != null; + binding.title.setText(country.nameResId); + binding.flagImage.setImageResource(country.imageResId); + binding.descriptionText.setText(country.descriptionResId); + } + + @Override + public void finish() { + super.finish(); + overridePendingTransition(R.anim.slide_in_right, R.anim.slide_out_left); + } +} \ No newline at end of file diff --git a/app/src/main/java/com/example/countries/MainActivity.java b/app/src/main/java/com/example/countries/MainActivity.java new file mode 100644 index 0000000..9dadf6a --- /dev/null +++ b/app/src/main/java/com/example/countries/MainActivity.java @@ -0,0 +1,88 @@ +package com.example.countries; + +import android.content.Intent; +import android.os.Bundle; +import android.view.View; +import android.widget.ListView; +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.countries.databinding.ActivityMainBinding; + +import java.util.ArrayList; + + +public class MainActivity extends AppCompatActivity { + + private ActivityMainBinding binding; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + EdgeToEdge.enable(this); + + binding = ActivityMainBinding.inflate(getLayoutInflater()); + View view = binding.getRoot(); + setContentView(view); + + ArrayList countries = new ArrayList(); + countries.add(new CountryModel( + R.string.serbia_title, + R.string.serbia_city, + R.string.serbia_description, + R.drawable.serbia_flag)); + + countries.add(new CountryModel( + R.string.germany_title, + R.string.germany_city, + R.string.germany_description, + R.drawable.germany_flag)); + + countries.add(new CountryModel( + R.string.uk_title, + R.string.uk_city, + R.string.uk_description, + R.drawable.uk_flag)); + + countries.add(new CountryModel( + R.string.france_title, + R.string.france_city, + R.string.france_description, + R.drawable.france_flag)); + + countries.add(new CountryModel( + R.string.italy_title, + R.string.italy_city, + R.string.italy_description, + R.drawable.italy_flag)); + + countries.add(new CountryModel( + R.string.russia_title, + R.string.russia_city, + R.string.russia_description, + R.drawable.russia_flag)); + + countries.add(new CountryModel( + R.string.japan_title, + R.string.japan_city, + R.string.japan_description, + R.drawable.japan_flag)); + + CountryAdapter adapter = new CountryAdapter(this, countries); + binding.countryListView.setAdapter(adapter); + + binding.countryListView.setOnItemClickListener((parent, v, position, id) -> { + CountryModel countrySelected = countries.get(position); + + Intent detailIntent = new Intent(MainActivity.this, DetailActivity.class); + detailIntent.putExtra("COUNTRY", countrySelected); + startActivity(detailIntent); + overridePendingTransition(R.anim.slide_in_right, R.anim.slide_out_left); + }); + } +} \ No newline at end of file diff --git a/app/src/main/java/com/example/countries/SplashActivity.java b/app/src/main/java/com/example/countries/SplashActivity.java new file mode 100644 index 0000000..452180f --- /dev/null +++ b/app/src/main/java/com/example/countries/SplashActivity.java @@ -0,0 +1,46 @@ +package com.example.countries; + +import android.content.Intent; +import android.os.Bundle; +import android.os.Handler; +import android.os.Looper; +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.countries.databinding.ActivitySplashBinding; + +public class SplashActivity extends AppCompatActivity { + + private ActivitySplashBinding binding; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + EdgeToEdge.enable(this); + + binding = ActivitySplashBinding.inflate(getLayoutInflater()); + View view = binding.getRoot(); + setContentView(view); + + // Handler to run splash intent in one UI thread + // https://developer.android.com/reference/android/os/Handler + Handler splashHandler = new Handler(); + splashHandler.postDelayed( + new Runnable() { + @Override + public void run() { + Intent intent = new Intent(SplashActivity.this, MainActivity.class); + startActivity(intent); + overridePendingTransition(R.anim.slide_in_right, R.anim.slide_out_left); + finish(); + } + }, + 3000 + ); + } +} \ No newline at end of file diff --git a/app/src/main/res/anim/slide_in_right.xml b/app/src/main/res/anim/slide_in_right.xml new file mode 100644 index 0000000..8ea6000 --- /dev/null +++ b/app/src/main/res/anim/slide_in_right.xml @@ -0,0 +1,5 @@ + + diff --git a/app/src/main/res/anim/slide_out_left.xml b/app/src/main/res/anim/slide_out_left.xml new file mode 100644 index 0000000..0197103 --- /dev/null +++ b/app/src/main/res/anim/slide_out_left.xml @@ -0,0 +1,5 @@ + + diff --git a/app/src/main/res/drawable/france_flag.png b/app/src/main/res/drawable/france_flag.png new file mode 100644 index 0000000..58f9df4 Binary files /dev/null and b/app/src/main/res/drawable/france_flag.png differ diff --git a/app/src/main/res/drawable/germany_flag.png b/app/src/main/res/drawable/germany_flag.png new file mode 100644 index 0000000..4fe64ce Binary files /dev/null and b/app/src/main/res/drawable/germany_flag.png differ 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/italy_flag.png b/app/src/main/res/drawable/italy_flag.png new file mode 100644 index 0000000..4438b44 Binary files /dev/null and b/app/src/main/res/drawable/italy_flag.png differ diff --git a/app/src/main/res/drawable/japan_flag.png b/app/src/main/res/drawable/japan_flag.png new file mode 100644 index 0000000..c8b2ddd Binary files /dev/null and b/app/src/main/res/drawable/japan_flag.png differ diff --git a/app/src/main/res/drawable/russia_flag.png b/app/src/main/res/drawable/russia_flag.png new file mode 100644 index 0000000..9676d23 Binary files /dev/null and b/app/src/main/res/drawable/russia_flag.png differ diff --git a/app/src/main/res/drawable/serbia_flag.png b/app/src/main/res/drawable/serbia_flag.png new file mode 100644 index 0000000..8b321b4 Binary files /dev/null and b/app/src/main/res/drawable/serbia_flag.png differ diff --git a/app/src/main/res/drawable/splash_logo.png b/app/src/main/res/drawable/splash_logo.png new file mode 100644 index 0000000..34e37f6 Binary files /dev/null and b/app/src/main/res/drawable/splash_logo.png differ diff --git a/app/src/main/res/drawable/uk_flag.png b/app/src/main/res/drawable/uk_flag.png new file mode 100644 index 0000000..04d6352 Binary files /dev/null and b/app/src/main/res/drawable/uk_flag.png differ diff --git a/app/src/main/res/layout/activity_detail.xml b/app/src/main/res/layout/activity_detail.xml new file mode 100644 index 0000000..a59ee45 --- /dev/null +++ b/app/src/main/res/layout/activity_detail.xml @@ -0,0 +1,43 @@ + + + + + + + + + \ No newline at end of file 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..e980206 --- /dev/null +++ b/app/src/main/res/layout/activity_main.xml @@ -0,0 +1,20 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_splash.xml b/app/src/main/res/layout/activity_splash.xml new file mode 100644 index 0000000..4908cf9 --- /dev/null +++ b/app/src/main/res/layout/activity_splash.xml @@ -0,0 +1,19 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/list_item.xml b/app/src/main/res/layout/list_item.xml new file mode 100644 index 0000000..c18c4e9 --- /dev/null +++ b/app/src/main/res/layout/list_item.xml @@ -0,0 +1,36 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/mipmap-anydpi/ic_launcher.xml b/app/src/main/res/mipmap-anydpi/ic_launcher.xml new file mode 100644 index 0000000..6f3b755 --- /dev/null +++ b/app/src/main/res/mipmap-anydpi/ic_launcher.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/mipmap-anydpi/ic_launcher_round.xml b/app/src/main/res/mipmap-anydpi/ic_launcher_round.xml new file mode 100644 index 0000000..6f3b755 --- /dev/null +++ b/app/src/main/res/mipmap-anydpi/ic_launcher_round.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher.webp b/app/src/main/res/mipmap-hdpi/ic_launcher.webp new file mode 100644 index 0000000..c209e78 Binary files /dev/null and b/app/src/main/res/mipmap-hdpi/ic_launcher.webp differ diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp new file mode 100644 index 0000000..b2dfe3d Binary files /dev/null and b/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp differ diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher.webp b/app/src/main/res/mipmap-mdpi/ic_launcher.webp new file mode 100644 index 0000000..4f0f1d6 Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/ic_launcher.webp differ diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp new file mode 100644 index 0000000..62b611d Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp differ diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher.webp b/app/src/main/res/mipmap-xhdpi/ic_launcher.webp new file mode 100644 index 0000000..948a307 Binary files /dev/null and b/app/src/main/res/mipmap-xhdpi/ic_launcher.webp differ diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp new file mode 100644 index 0000000..1b9a695 Binary files /dev/null and b/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp differ diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp b/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp new file mode 100644 index 0000000..28d4b77 Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp differ diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp new file mode 100644 index 0000000..9287f50 Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp differ diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp b/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp new file mode 100644 index 0000000..aa7d642 Binary files /dev/null and b/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp differ diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp new file mode 100644 index 0000000..9126ae3 Binary files /dev/null and b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp differ diff --git a/app/src/main/res/values-night/themes.xml b/app/src/main/res/values-night/themes.xml new file mode 100644 index 0000000..fec5c74 --- /dev/null +++ b/app/src/main/res/values-night/themes.xml @@ -0,0 +1,7 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/values-sr-rRS/strings.xml b/app/src/main/res/values-sr-rRS/strings.xml new file mode 100644 index 0000000..24fd26f --- /dev/null +++ b/app/src/main/res/values-sr-rRS/strings.xml @@ -0,0 +1,52 @@ + + Zemlje + + + Srbija + Beograd + + Srbija, zvanično Republika Srbija, je kontinentalna zemlja u jugoistočnoj i centralnoj Evropi. Nalazi se na Balkanu i graniči se sa Mađarskom na severu, Rumunijom na severoistoku, Bugarskom na jugoistoku, Severnom Makedonijom na jugu, Hrvatskom i Bosnom i Hercegovinom na zapadu, i Crnom Gorom na jugozapadu. Srbija polaže pravo na granicu sa Albanijom preko sporne teritorije Kosova. Ima oko 6,6 miliona stanovnika, a njen glavni i najveći grad je Beograd. + + + + Nemačka + Berlin + + Nemačka, zvanično Savezna Republika Nemačka, je zemlja u centralnoj Evropi. Nalazi se između Baltičkog i Severnog mora na severu i Alpa na jugu. Njenih šesnaest saveznih država ima ukupno više od 84 miliona stanovnika na površini od 357.596 km², što je čini najmnogoljudnijom članicom Evropske unije. + + + + Ujedinjeno Kraljevstvo + London + + Ujedinjeno Kraljevstvo (UK), zvanično Ujedinjeno Kraljevstvo Velike Britanije i Severne Irske, je država koja se nalazi na severozapadnoj obali kontinentalne Evrope. Sastoji se od četiri zemlje: Engleske, Škotske, Velsa i Severne Irske. UK ima oko 67 miliona stanovnika i pokriva površinu od 243.610 km². Glavni i najveći grad je London. + + + + Francuska + Pariz + +Francuska, zvanično Francuska Republika, je zemlja koja se uglavnom nalazi u Zapadnoj Evropi, ali uključuje i razna prekomorska područja i teritorije. Graniči se sa Belgijom, Luksemburgom, Nemačkom, Švajcarskom, Italijom, Monakom, Andorom i Španijom. Ima oko 67 miliona stanovnika. Pariz je glavni i najveći grad. + + + + Italija + Rim + +Italija, zvanično Italijanska Republika, je država u južnoj Evropi, poznata po bogatoj istoriji, kulturi i kuhinji. Graniči se sa Francuskom, Švajcarskom, Austrijom i Slovenijom. Italija ima oko 59 miliona stanovnika i površinu od 301.340 km². Njen glavni i najveći grad je Rim. + + + + Rusija + Moskva + +Rusija, zvanično Ruska Federacija, je transkontinentalna država koja se prostire kroz istočnu Evropu i severnu Aziju. To je najveća zemlja na svetu po površini, sa preko 17 miliona km². Graniči se sa mnogim zemljama uključujući Norvešku, Finsku, Estoniju, Letoniju, Litvaniju, Poljsku, Ukrajinu, Gruziju i druge. Ima oko 146 miliona stanovnika. Moskva je njen glavni i najveći grad. + + + + Japan + Tokio + +Japan, zvanično Država Japan, je ostrvska zemlja u istočnoj Aziji, smeštena u severozapadnom Pacifiku. Sastoji se od četiri glavna ostrva — Honšu, Hokaido, Kjušu i Šikoku — kao i brojnih manjih ostrva. Japan ima oko 125 miliona stanovnika. Tokio, glavni grad, je jedan od najmnogoljudnijih gradova na svetu. + + \ No newline at end of file diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml new file mode 100644 index 0000000..c8524cd --- /dev/null +++ b/app/src/main/res/values/colors.xml @@ -0,0 +1,5 @@ + + + #FF000000 + #FFFFFFFF + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml new file mode 100644 index 0000000..37eb8b9 --- /dev/null +++ b/app/src/main/res/values/strings.xml @@ -0,0 +1,53 @@ + + Countries + + + Serbia + Belgrade + Serbia, officially the Republic of Serbia, is a landlocked country in Southeast and Central Europe. Located in the Balkans, it borders Hungary to the north, Romania to the northeast, Bulgaria to the southeast, North Macedonia to the south, Croatia and Bosnia and Herzegovina to the west, and Montenegro to the southwest. Serbia claims a border with Albania through the disputed territory of Kosovo. Serbia has about 6.6 million inhabitants. Its capital Belgrade is also the largest city. + + + + Germany + Berlin + Germany, officially the Federal Republic of Germany,[e] is a country in Central Europe. It lies between the Baltic Sea and the North Sea to the north and the Alps to the south. Its sixteen constituent states have a total population of over 84 million in an area of 357,596 km2 (138,069 sq mi), making it the most populous member state of the European Union. + + + + United Kingdom + London + + The United Kingdom (UK), officially the United Kingdom of Great Britain and Northern Ireland, is a country located off the northwestern coast of mainland Europe. It comprises four countries: England, Scotland, Wales, and Northern Ireland. The UK has a population of around 67 million and covers an area of 243,610 km² (94,058 sq mi). London is the capital and largest city. + + + + France + Paris + +France, officially the French Republic, is a country primarily located in Western Europe. It also includes various overseas regions and territories. France shares borders with Belgium, Luxembourg, Germany, Switzerland, Italy, Monaco, Andorra, and Spain. It has a population of around 67 million people. Paris is the capital and largest city. + + + + Italy + Rome + +Italy, officially the Italian Republic, is a country located in Southern Europe, known for its rich history, culture, and cuisine. It shares borders with France, Switzerland, Austria, and Slovenia. Italy has a population of about 59 million and covers an area of 301,340 km². Its capital and largest city is Rome. + + + + Russia + Moscow + +Russia, officially the Russian Federation, is a transcontinental country spanning Eastern Europe and Northern Asia. It is the largest country in the world by area, covering over 17 million km². Russia borders many countries including Norway, Finland, Estonia, Latvia, Lithuania, Poland, Ukraine, Georgia, and others. It has a population of around 146 million. Moscow is its capital and largest city. + + + + Japan + Tokyo + +Japan, officially the State of Japan, is an island country in East Asia, located in the northwest Pacific Ocean. It consists of four main islands — Honshu, Hokkaido, Kyushu, and Shikoku — along with numerous smaller islands. Japan has a population of approximately 125 million people. Tokyo, its capital, is one of the most populous cities in the world. + + + + + \ No newline at end of file diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml new file mode 100644 index 0000000..965c437 --- /dev/null +++ b/app/src/main/res/values/themes.xml @@ -0,0 +1,9 @@ + + + + +