From 3a817406ea2ce9f939abcd6597d75c7552978838 Mon Sep 17 00:00:00 2001 From: vbresan <288855+vbresan@users.noreply.github.com> Date: Tue, 26 Jul 2022 00:52:47 +0200 Subject: [PATCH] Initial commit --- .gitignore | 15 + app/.gitignore | 1 + app/build.gradle | 43 ++ app/proguard-rules.pro | 21 + app/src/main/AndroidManifest.xml | 24 + app/src/main/ic_launcher-playstore.png | Bin 0 -> 35394 bytes .../java/com/eurokonverter/MainActivity.java | 218 ++++++ .../util/CustomScrollingMovementMethod.java | 42 ++ app/src/main/res/drawable/ic_eu.xml | 58 ++ app/src/main/res/drawable/ic_hr.xml | 698 ++++++++++++++++++ .../res/drawable/ic_launcher_background.xml | 61 ++ .../res/drawable/ic_launcher_foreground.xml | 16 + app/src/main/res/layout/activity_main.xml | 264 +++++++ .../res/mipmap-anydpi-v26/ic_launcher.xml | 5 + .../mipmap-anydpi-v26/ic_launcher_round.xml | 5 + app/src/main/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 2734 bytes .../res/mipmap-hdpi/ic_launcher_round.png | Bin 0 -> 4072 bytes app/src/main/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 1737 bytes .../res/mipmap-mdpi/ic_launcher_round.png | Bin 0 -> 2917 bytes app/src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 3699 bytes .../res/mipmap-xhdpi/ic_launcher_round.png | Bin 0 -> 6630 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 4567 bytes .../res/mipmap-xxhdpi/ic_launcher_round.png | Bin 0 -> 9300 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 8143 bytes .../res/mipmap-xxxhdpi/ic_launcher_round.png | Bin 0 -> 15292 bytes app/src/main/res/values-night/themes.xml | 18 + app/src/main/res/values/colors.xml | 10 + app/src/main/res/values/dimens.xml | 4 + app/src/main/res/values/strings.xml | 3 + app/src/main/res/values/themes.xml | 18 + build.gradle | 17 + gradle.properties | 19 + settings.gradle | 10 + 33 files changed, 1570 insertions(+) create mode 100644 .gitignore create mode 100644 app/.gitignore create mode 100644 app/build.gradle create mode 100644 app/proguard-rules.pro create mode 100644 app/src/main/AndroidManifest.xml create mode 100644 app/src/main/ic_launcher-playstore.png create mode 100644 app/src/main/java/com/eurokonverter/MainActivity.java create mode 100644 app/src/main/java/com/eurokonverter/util/CustomScrollingMovementMethod.java create mode 100644 app/src/main/res/drawable/ic_eu.xml create mode 100644 app/src/main/res/drawable/ic_hr.xml 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/layout/activity_main.xml create mode 100644 app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml create mode 100644 app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml create mode 100644 app/src/main/res/mipmap-hdpi/ic_launcher.png create mode 100644 app/src/main/res/mipmap-hdpi/ic_launcher_round.png create mode 100644 app/src/main/res/mipmap-mdpi/ic_launcher.png create mode 100644 app/src/main/res/mipmap-mdpi/ic_launcher_round.png create mode 100644 app/src/main/res/mipmap-xhdpi/ic_launcher.png create mode 100644 app/src/main/res/mipmap-xhdpi/ic_launcher_round.png create mode 100644 app/src/main/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png create mode 100644 app/src/main/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png 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/dimens.xml create mode 100644 app/src/main/res/values/strings.xml create mode 100644 app/src/main/res/values/themes.xml create mode 100644 build.gradle create mode 100644 gradle.properties create mode 100644 settings.gradle 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/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 b/app/build.gradle new file mode 100644 index 0000000..4cc3ad2 --- /dev/null +++ b/app/build.gradle @@ -0,0 +1,43 @@ +plugins { + id 'com.android.application' +} + +android { + compileSdk 30 + buildToolsVersion "30.0.2" + + defaultConfig { + applicationId "com.eurokonverter" + minSdk 21 + targetSdk 30 + versionCode 1 + versionName "1.0" + + setProperty("archivesBaseName", "$applicationId-$versionName") + + testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + } + + buildTypes { + release { + minifyEnabled true + 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.2.0' + implementation 'com.google.android.material:material:1.4.0' + implementation 'androidx.gridlayout:gridlayout:1.0.0' + implementation "androidx.cardview:cardview:1.0.0" + + testImplementation 'junit:junit:4.+' + androidTestImplementation 'androidx.test.ext:junit:1.1.3' + androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0' +} \ 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/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000..7eacd7a --- /dev/null +++ b/app/src/main/AndroidManifest.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/ic_launcher-playstore.png b/app/src/main/ic_launcher-playstore.png new file mode 100644 index 0000000000000000000000000000000000000000..303d7151ccde2a658e34369eead80437eaa90c27 GIT binary patch literal 35394 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 HJ^%j&=%0Qh literal 0 HcmV?d00001 diff --git a/app/src/main/java/com/eurokonverter/MainActivity.java b/app/src/main/java/com/eurokonverter/MainActivity.java new file mode 100644 index 0000000..1abaff4 --- /dev/null +++ b/app/src/main/java/com/eurokonverter/MainActivity.java @@ -0,0 +1,218 @@ +package com.eurokonverter; + +import android.graphics.Color; +import android.os.Bundle; +import android.text.Selection; +import android.view.View; +import android.widget.Button; +import android.widget.LinearLayout; +import android.widget.TextView; + +import androidx.appcompat.app.AppCompatActivity; + +import com.eurokonverter.util.CustomScrollingMovementMethod; + +import java.util.Locale; + +/** + * + */ +public class MainActivity extends AppCompatActivity { + + private final double CONVERSION_RATE = 7.53450; + + private LinearLayout selectedView; + private TextView inputView; + private TextView outputView; + + /** + * + * @param textView + */ + private void scrollToEnd(TextView textView) { + + textView.append(""); + Selection.setSelection(textView.getEditableText(), textView.length()); + } + + /** + * + */ + private void setInputViewScrolling(int id) { + + LinearLayout view = findViewById(id); + if (view == null) { + return; + } + + TextView inputView = (TextView) view.getChildAt(view.getChildCount() - 1); + if (inputView == null) { + return; + } + + inputView.setMovementMethod(new CustomScrollingMovementMethod(this)); + scrollToEnd(inputView); + } + /** + * + * @param layoutId + */ + private void setSelectedView(int layoutId) { + + LinearLayout hrk = findViewById(R.id.linearLayoutHRK); + LinearLayout eur = findViewById(R.id.linearLayoutEUR); + + if (hrk == null || eur == null) { + return; + } + + if (layoutId == R.id.linearLayoutHRK) { + eur.setBackgroundColor(Color.TRANSPARENT); + hrk.setBackgroundColor(getResources().getColor(R.color.design_default_color_secondary)); + + inputView = (TextView) hrk.getChildAt(hrk.getChildCount() - 1); + outputView = (TextView) eur.getChildAt(eur.getChildCount() - 1); + selectedView = hrk; + } else { + hrk.setBackgroundColor(Color.TRANSPARENT); + eur.setBackgroundColor(getResources().getColor(R.color.design_default_color_secondary)); + + inputView = (TextView) eur.getChildAt(eur.getChildCount() - 1); + outputView = (TextView) hrk.getChildAt(hrk.getChildCount() - 1); + selectedView = eur; + } + } + + /** + * + * @param textView + * @return + */ + private double getDouble(TextView textView) { + + String string = textView.getText().toString().replaceAll("\\.", "").replaceAll(",", "."); + return Double.parseDouble(string); + } + + /** + * + * @param textView + * @param value + */ + private void setDouble(TextView textView, double value) { + + if (value == 0) { + textView.setText("0"); + return; + } + + textView.setText(String.format(Locale.GERMANY, "%,.2f", value)); + } + + /** + * + * @param textView + * @param value + */ + private void setDoubleNoDecimals(TextView textView, double value) { + + if (value == 0) { + textView.setText("0"); + return; + } + + String string = String.format(Locale.GERMANY, "%,.2f", value); + + while (string.endsWith("0")) { + string = string.substring(0, string.length() - 1); + } + + if (string.endsWith(",")) { + string = string.substring(0, string.length() - 1); + } + + textView.setText(string); + } + + /** + * + */ + private void convert() { + + double value = getDouble(inputView); + if (selectedView.getId() == R.id.linearLayoutHRK) { + value /= CONVERSION_RATE; + } else { + value *= CONVERSION_RATE; + } + + setDouble(outputView, value); + scrollToEnd(outputView); + } + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + + setInputViewScrolling(R.id.linearLayoutHRK); + setInputViewScrolling(R.id.linearLayoutEUR); + + setSelectedView(R.id.linearLayoutHRK); + } + + /** + * + * @param view + */ + public void onCurrencySelected(View view) { + setSelectedView(view.getId()); + } + + /** + * + * @param view + */ + public void onKeyPressed(View view) { + + if (selectedView == null || inputView == null) { + return; + } + + char key = ((Button) view).getText().toString().charAt(0); + if (key == 'C') { + inputView.setText("0"); + } else if (key == 8592) { + + int length = inputView.length(); + if (length > 1) { + inputView.setText(inputView.getText().subSequence(0, length - 1)); + } else { + inputView.setText("0"); + } + } else if (key == ',') { + if (!inputView.getText().toString().contains(",")) { + inputView.append("" + key); + } + } else { + + String text = inputView.getText().toString(); + if (text.contains(",") && text.indexOf(',') == text.length() - 3) { + return; + } + + if (inputView.length() == 1 && text.charAt(0) == '0') { + inputView.setText("" + key); + } else { + inputView.append("" + key); + } + } + + if (!inputView.getText().toString().contains(",")) { + setDoubleNoDecimals(inputView, getDouble(inputView)); + } + + scrollToEnd(inputView); + convert(); + } +} \ No newline at end of file diff --git a/app/src/main/java/com/eurokonverter/util/CustomScrollingMovementMethod.java b/app/src/main/java/com/eurokonverter/util/CustomScrollingMovementMethod.java new file mode 100644 index 0000000..7d60281 --- /dev/null +++ b/app/src/main/java/com/eurokonverter/util/CustomScrollingMovementMethod.java @@ -0,0 +1,42 @@ +package com.eurokonverter.util; + +import android.text.Spannable; +import android.text.method.ScrollingMovementMethod; +import android.view.GestureDetector; +import android.view.MotionEvent; +import android.view.View; +import android.widget.TextView; + +import com.eurokonverter.MainActivity; + +/** + * + */ +public class CustomScrollingMovementMethod extends ScrollingMovementMethod { + + private TextView textView; + private final GestureDetector gestureDetector; + + /** + * + * @param activity + */ + public CustomScrollingMovementMethod(MainActivity activity) { + + gestureDetector = new GestureDetector(activity, new GestureDetector.SimpleOnGestureListener() { + @Override + public boolean onSingleTapUp(MotionEvent e) { + activity.onCurrencySelected((View) textView.getParent()); + return super.onSingleTapUp(e); + } + }); + } + + @Override + public boolean onTouchEvent(TextView widget, Spannable buffer, MotionEvent event) { + + textView = widget; + gestureDetector.onTouchEvent(event); + return super.onTouchEvent(widget, buffer, event); + } +} diff --git a/app/src/main/res/drawable/ic_eu.xml b/app/src/main/res/drawable/ic_eu.xml new file mode 100644 index 0000000..7aa8099 --- /dev/null +++ b/app/src/main/res/drawable/ic_eu.xml @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/ic_hr.xml b/app/src/main/res/drawable/ic_hr.xml new file mode 100644 index 0000000..6b60a50 --- /dev/null +++ b/app/src/main/res/drawable/ic_hr.xml @@ -0,0 +1,698 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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..2055e97 --- /dev/null +++ b/app/src/main/res/drawable/ic_launcher_background.xml @@ -0,0 +1,61 @@ + + + + + + + + + + + + + + + + + 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..86d71f8 --- /dev/null +++ b/app/src/main/res/drawable/ic_launcher_foreground.xml @@ -0,0 +1,16 @@ + + + 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..f2b719b --- /dev/null +++ b/app/src/main/res/layout/activity_main.xml @@ -0,0 +1,264 @@ + + + + + + + + + + + + + + + + + + + + + +