-
Notifications
You must be signed in to change notification settings - Fork 0
/
CurrencyConverter.java
122 lines (106 loc) · 4.96 KB
/
CurrencyConverter.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
package com.Sumit1334.CurrencyConverter;
import com.google.appinventor.components.annotations.DesignerComponent;
import com.google.appinventor.components.annotations.DesignerProperty;
import com.google.appinventor.components.annotations.SimpleEvent;
import com.google.appinventor.components.annotations.SimpleFunction;
import com.google.appinventor.components.annotations.SimpleObject;
import com.google.appinventor.components.annotations.SimpleProperty;
import com.google.appinventor.components.common.ComponentCategory;
import com.google.appinventor.components.runtime.AndroidNonvisibleComponent;
import com.google.appinventor.components.runtime.ComponentContainer;
import com.google.appinventor.components.runtime.EventDispatcher;
import android.app.Activity;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
@DesignerComponent(description = "An extension for converting any currency to any currency by Sumit Kumar", version = 1, iconName = "https://community.kodular.io/user_avatar/community.kodular.io/sumit1334/120/82654_2.png",nonVisible = true,category = ComponentCategory.EXTENSION)
@SimpleObject(external = true)
public class CurrencyConverter extends AndroidNonvisibleComponent {
private static String from="USD";
private static String to="INR";
private final Activity activity;
private static String url;
private static int amount;
public CurrencyConverter(ComponentContainer container) {
super(container.$form());
activity = container.$context();
}
@SimpleEvent(description = "This event raises when got the price")
public void Got(double amount){
EventDispatcher.dispatchEvent(this, "Got", amount);
}
@SimpleEvent(description = "This event raises when any error occur")
public void ErrorOccured(String error){
EventDispatcher.dispatchEvent(this, "ErrorOccured", error);
}
@SimpleFunction(description = "convert any amount to given currency")
public void Get(int amount){
final StringBuilder sb=new StringBuilder();
sb.append("https://www.mataf.net/en/currency/converter-");
sb.append(this.from);
sb.append("-");
sb.append(this.to);
sb.append("?m1=");
sb.append(amount);
this.url=sb.toString();
this.amount=amount;
new getprize().start();
}
@SimpleProperty(description = "return the current Currency From")
public String From(){
return this.from;
}
@SimpleProperty(description = "return the current Currency to")
public String To(){
return this.to;
}
@DesignerProperty(editorType = "String",defaultValue = "INR")
@SimpleProperty(description = "Set the currency type of that you want to get the prize")
public void To(String to){
this.to=to;
}
@DesignerProperty(editorType = "String",defaultValue = "USD")
@SimpleProperty(description = "Set the currency type from that you want to get the prize")
public void From(String to){
this.from=to;
}
public class getprize extends Thread {
int am=amount;
private void get() {
String status="Getting data";
}
public void run() {
try {
URL url=new URL(CurrencyConverter.url);
HttpURLConnection h= (HttpURLConnection) url.openConnection();
InputStream im=h.getInputStream();
BufferedReader bf=new BufferedReader(new InputStreamReader(im));
final String data=bf.readLine();
CurrencyConverter.this.activity.runOnUiThread((Runnable) new Runnable(){
String dat=data;
@Override
public void run() {
try {
int l="description\" content=\"ll➤ 【".length();
int st=dat.indexOf("description\" content=\"ll➤ 【");
String segment1 = dat.substring((st+l),st+l+20);
String segment2 = segment1.substring(segment1.indexOf("= ") + 2, segment1.indexOf("】"));
double price=Double.parseDouble(segment2.replaceAll(segment2.substring(0,1),""))*CurrencyConverter.this.amount;
CurrencyConverter.this.Got(price);
}catch (Exception e){
CurrencyConverter.this.ErrorOccured(e.toString());
}
}
});
} catch (MalformedURLException e) {
CurrencyConverter.this.ErrorOccured(e.toString());
} catch (IOException e) {
CurrencyConverter.this.ErrorOccured(e.toString());
}
}
}
}