Skip to content

Commit

Permalink
Merge pull request #1 from gzeinnumer/dev-1
Browse files Browse the repository at this point in the history
Dev 1
  • Loading branch information
gzeinnumer authored Nov 2, 2020
2 parents e37b766 + bb4e06b commit d9c1097
Show file tree
Hide file tree
Showing 17 changed files with 225 additions and 98 deletions.
239 changes: 187 additions & 52 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
<p align="center">
<img src="https://github.com/gzeinnumer/MyLibUtils/blob/master/preview/bg.jpg" width="400"/>
<img src="https://github.com/gzeinnumer/MyLibCurrencyConverter/blob/master/preview/example7.jpg" width="400"/>
</p>

<h1 align="center">
MyLibCurrencyConverter
</h1>

<p align="center">
<a><img src="https://img.shields.io/badge/Version-3.0.0-brightgreen.svg?style=flat"></a>
<a><img src="https://img.shields.io/badge/Version-4.0.0-brightgreen.svg?style=flat"></a>
<a><img src="https://img.shields.io/badge/ID-gzeinnumer-blue.svg?style=flat"></a>
<a><img src="https://img.shields.io/badge/Java-Suport-green?logo=java&style=flat"></a>
<a><img src="https://img.shields.io/badge/Koltin-Suport-green?logo=kotlin&style=flat"></a>
Expand Down Expand Up @@ -36,34 +36,74 @@ dependencies {
```

## Feature List
- [x] **CurrencyConverter**.
- [x] **CurrencyConverter Programatically**.
- [x] **CurrencyConverter In View (XML)**.

## Tech stack and 3rd library
- TextWatcher ([docs](https://developer.android.com/reference/android/text/TextWatcher))
- Material.io ([docs](https://material.io/develop/android/docs/getting-started))

---
## Use

### CurrencyConverter.
### CurrencyConverter Programatically.

**Note** `RP 123,456,789.111` To Remove `Prefix` `RP` and symbol `,` you can use this :
```java
String str = editText.getText().toString();
textView.setText(StringTools.trimCommaOfString(str, "RP "));
//or -> without prefix
textView.setText(StringTools.trimCommaOfString(str);
```
```kotlin
val str = editText.text;
textView.text = StringTools.trimCommaOfString(str, "RP ")
//or -> without prefix
textView.text = StringTools.trimCommaOfString(str)
```

Here is the `xml` view that i use for Sample 1-4
```xml
<EditText
android:id="@+id/editText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="numberDecimal" />
```
#
* Sample 1 -> Simple `TextWacher`
> **Java**
```java
//sample 1
//get real value from input via onclick
editText.addTextChangedListener(new CurrencyConverter(editText));

button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String str = editText.getText().toString();
Log.d(TAG, "onClick: "+CurrencyConverter.trimCommaOfString(str));
Log.d(TAG, "onClick: "+ StringTools.trimCommaOfString(str, "RP "));
Log.d(TAG, "onClick: "+editText.getText().toString());

textView.setText(CurrencyConverter.trimCommaOfString(str));
textView.setText(StringTools.trimCommaOfString(str));
}
});
```
> **Kotlin**
```kotlin
editText.addTextChangedListener(CurrencyConverter(editText))

button.setOnClickListener {
val str: String = editText.text.toString()
Log.d(TAG, "onClick: " + StringTools.trimCommaOfString(str))
Log.d(TAG, "onClick: "+editText.text.toString())

textView.text = StringTools.trimCommaOfString(str)
}
```

//sample 2
//get real value from input via listener
#
* Sample 2 -> Simple `TextWacher` With `CallBack`
> **Java**
```java
editText.addTextChangedListener(new CurrencyConverter(editText, new CurrencyConverter.StringCallBack() {
@Override
public void realString(String value) {
Expand All @@ -73,24 +113,55 @@ editText.addTextChangedListener(new CurrencyConverter(editText, new CurrencyConv
textView.setText("(Real Value) : "+value + " && (Preview) : "+editText.getText().toString());
}
}));
```
> **Kotlin**
```kotlin
editText.addTextChangedListener(
CurrencyConverter(editText,
StringCallBack { value ->
Log.d(TAG, "realString: $value")
Log.d(TAG, "realString: "+editText.text)

//sample 3
//get real value from input via onclick with prefix
textView.text = StringTools.trimCommaOfString(str)
}
)
)
```

#
* Sample 3 -> Simple `TextWacher` With `Prefix`
> **Java**
```java
editText.addTextChangedListener(new CurrencyConverter(editText, "RP "));

button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String str = editText.getText().toString();
Log.d(TAG, "onClick: "+CurrencyConverter.trimCommaOfString(str));
Log.d(TAG, "onClick: "+StringTools.trimCommaOfString(str));
Log.d(TAG, "onClick: "+editText.getText().toString());

textView.setText(CurrencyConverter.trimCommaOfString(str));
textView.setText(StringTools.trimCommaOfString(str));
}
});
```
> **Kotlin**
```kotlin
editText.addTextChangedListener(CurrencyConverter(editText, "RP "))

//sample 4
//get real value from input via listener with prefix
button.setOnClickListener {
val str: String = editText.text.toString()
Log.d(TAG, "onClick: " + StringTools.trimCommaOfString(str))
Log.d(TAG, "onClick: "+editText.text.toString())

textView.text = StringTools.trimCommaOfString(str)
}
```

#
* Sample 4 -> Simple `TextWacher` With `Prefix` And `CallBack`
> **Java**
```java
editText.addTextChangedListener(new CurrencyConverter(editText, "RP " ,new CurrencyConverter.StringCallBack() {
@Override
public void realString(String value) {
Expand All @@ -103,60 +174,124 @@ editText.addTextChangedListener(new CurrencyConverter(editText, "RP " ,new Curre
```
> **Kotlin**
```kotlin
//sample 1
//get real value from input via onclick
editText.addTextChangedListener(CurrencyConverter(editText))
button.setOnClickListener {
val str: String = editText.text.toString()
Log.d(TAG, "onClick: " + CurrencyConverter.trimCommaOfString(str))
Log.d(TAG, "onClick: "+editText.text.toString())

textView.text = CurrencyConverter.trimCommaOfString(str)
}

//sample 2
//get real value from input via listener
editText.addTextChangedListener(
CurrencyConverter(editText,
"RP ",
StringCallBack { value ->
Log.d(TAG, "realString: $value")
Log.d(TAG, "realString: "+editText.text)

textView.text = CurrencyConverter.trimCommaOfString(str)
textView.text = StringTools.trimCommaOfString(str)
}
)
)
```

//sample 3
//get real value from input via onclick with prefix
editText.addTextChangedListener(CurrencyConverter(editText, "RP "))
button.setOnClickListener {
val str: String = editText.text.toString()
Log.d(TAG, "onClick: " + CurrencyConverter.trimCommaOfString(str))
Log.d(TAG, "onClick: "+editText.text.toString())
Preview :
|<img src="https://github.com/gzeinnumer/MyLibCurrencyConverter/blob/master/preview/example1.jpg" width="400"/>|<img src="https://github.com/gzeinnumer/MyLibCurrencyConverter/blob/master/preview/example2.jpg" width="400"/>|
|---|---|

textView.text = CurrencyConverter.trimCommaOfString(str)
}
#
### CurrencyConverter In View (XML).
* Sample 1 -> In `EditText`
```xml
<com.gzeinnumer.mylibcurrencyconverter.utils.CurrencyEditText
android:id="@+id/ed"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:hint="Dalam Jumlah Rupiah"
app:prefix="RP " />
```
Remove `Prefix` and symbol `,`
```java
CurrencyEditTextOutlinedBox ed1 = findViewById(R.id.ed);

//sample 4
//get real value from input via listener with prefix
editText.addTextChangedListener(
CurrencyConverter(editText,
"RP ",
StringCallBack { value ->
Log.d(TAG, "realString: $value")
Log.d(TAG, "realString: "+editText.text)
String str = StringTools.trimCommaOfString(ed1.getText(), "RP ");
```

textView.text = CurrencyConverter.trimCommaOfString(str)
}
)
)
Preview :
|<img src="https://github.com/gzeinnumer/MyLibCurrencyConverter/blob/master/preview/example4.jpg" width="400"/>|<img src="https://github.com/gzeinnumer/MyLibCurrencyConverter/blob/master/preview/example9.jpg" width="400"/>|
|---|---|

#
* Sample 2 -> Use Material Design
```xml
<com.google.android.material.textfield.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:hint="Dalam Bentuk Rupiah">

<com.gzeinnumer.mylibcurrencyconverter.utils.CurrencyEditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:prefix="RP " />

</com.google.android.material.textfield.TextInputLayout>
```
Remove `Prefix` and symbol `,`
```java
CurrencyEditTextOutlinedBox ed1 = findViewById(R.id.ed);

String str = StringTools.trimCommaOfString(ed1.getText(), "RP ");
```

Preview :
|<img src="https://github.com/gzeinnumer/MyLibCurrencyConverter/blob/master/preview/example1.jpg" width="400"/>|<img src="https://github.com/gzeinnumer/MyLibCurrencyConverter/blob/master/preview/example2.jpg" width="400"/>|
|<img src="https://github.com/gzeinnumer/MyLibCurrencyConverter/blob/master/preview/example5.jpg" width="400"/>|<img src="https://github.com/gzeinnumer/MyLibCurrencyConverter/blob/master/preview/example10.jpg" width="400"/>|
|---|---|

#
* Sample 3 -> Use Material Design With Simple Code
```xml
//OutlinedBox
<com.gzeinnumer.mylibcurrencyconverter.utils.CurrencyEditTextOutlinedBox
android:id="@+id/ed_1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:hint="Dalam Jumlah Rupiah"
app:prefix="RP " />

//FilledBox
<com.gzeinnumer.mylibcurrencyconverter.utils.CurrencyEditTextFilledBox
android:id="@+id/ed_2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:hint="Dalam Jumlah Rupiah"
app:prefix="RP " />
```
```java
//OutlinedBox
CurrencyEditTextOutlinedBox ed1 = findViewById(R.id.ed_1);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {

textView.setText(ed1.getText());
textView.setText(StringTools.trimCommaOfString(ed1.getText(), "RP "));
}
});

//FilledBox
CurrencyEditTextFilledBox ed1 = findViewById(R.id.ed_2);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {

textView.setText(ed1.getText());
textView.setText(StringTools.trimCommaOfString(ed1.getText(), "RP "));
}
});
```

Preview :
|<img src="https://github.com/gzeinnumer/MyLibCurrencyConverter/blob/master/preview/example6.jpg" width="400"/>|<img src="https://github.com/gzeinnumer/MyLibCurrencyConverter/blob/master/preview/example11.jpg" width="400"/>|
|---|---|


Preview :
|<img src="https://github.com/gzeinnumer/MyLibCurrencyConverter/blob/master/preview/example8.jpg" width="400"/>|
|---|

---

```
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
import com.gzeinnumer.mylibcurrencyconverter.utils.CurrencyConverter;
import com.gzeinnumer.mylibcurrencyconverter.utils.CurrencyEditTextFilledBox;
import com.gzeinnumer.mylibcurrencyconverter.utils.CurrencyEditTextOutlinedBox;
import com.gzeinnumer.mylibcurrencyconverter.utils.StringTools;

public class MainActivity extends AppCompatActivity {

Expand All @@ -31,25 +32,23 @@ protected void onCreate(Bundle savedInstanceState) {
button = findViewById(R.id.button);
textView = findViewById(R.id.textView);

// sample1();
sample1();
// sample2();
// sample3();
// sample4();
sample5();
// sample5();
}

private void sample1() {
editText.addTextChangedListener(new CurrencyConverter(editText, "RP "));
// editText.addTextChangedListener(new CurrencyConverter(editText));

button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String str = editText.getText().toString();
Log.d(TAG, "onClick: "+ CurrencyConverter.trimCommaOfString(str));
Log.d(TAG, "onClick: "+ StringTools.trimCommaOfString(str, "RP "));

// textView.setText(CurrencyConverter.trimCommaOfString(str));
textView.setText(str);
textView.setText(StringTools.trimCommaOfString(str, "RP "));
}
});
}
Expand Down Expand Up @@ -79,9 +78,8 @@ private void sample4() {
@Override
public void onClick(View v) {

// textView.setText(CurrencyConverter.trimCommaOfString(str));
CurrencyEditTextOutlinedBox.trimCommaOfString(editText.getText().toString());
textView.setText(ed1.getText());
// textView.setText(ed1.getText());
textView.setText(StringTools.trimCommaOfString(ed1.getText(), "RP "));
}
});

Expand All @@ -94,9 +92,8 @@ private void sample5() {
@Override
public void onClick(View v) {

// textView.setText(CurrencyConverter.trimCommaOfString(str));
CurrencyEditTextFilledBox.trimCommaOfString(editText.getText().toString());
textView.setText(ed1.getText());
textView.setText(StringTools.trimCommaOfString(ed1.getText(), "RP "));
}
});

Expand Down
Loading

0 comments on commit d9c1097

Please sign in to comment.