Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.example.l6z1
- import android.support.v7.app.AppCompatActivity
- import android.os.Bundle
- import android.util.Log
- import android.view.View
- import android.widget.Button
- import android.widget.EditText
- import android.widget.TextView
- import android.widget.Toast
- import com.google.gson.Gson
- import retrofit2.Call
- import retrofit2.Callback
- import retrofit2.Response
- import retrofit2.Retrofit
- import retrofit2.converter.gson.GsonConverterFactory
- import retrofit2.converter.scalars.ScalarsConverterFactory
- import retrofit2.http.GET
- import retrofit2.http.Path
- import org.json.JSONObject
- class MainActivity : AppCompatActivity() {
- override fun onCreate(savedInstanceState: Bundle?) {
- super.onCreate(savedInstanceState)
- setContentView(R.layout.activity_main)
- }
- fun getExpression() : String{
- return findViewById<EditText>(R.id.editText).text.toString()
- }
- interface NewtonApi{
- @GET("/{operation}/{expression}")
- fun getResult(@Path("operation") operation : String, @Path("expression") expression : String) : Call<String>
- }
- fun calculateResult(operation: String, expression: String){
- var retrofit = Retrofit.Builder()
- .baseUrl("https://newton.now.sh")
- .addConverterFactory(ScalarsConverterFactory.create())
- .build()
- var api = retrofit.create(NewtonApi::class.java)
- var call = api.getResult(operation, expression)
- call.enqueue(object : Callback<String> {
- override fun onResponse(call: Call<String>, response: Response<String>) {
- var result = response.body().toString()
- val obj = JSONObject(result)
- Log.d("am2019", "result: ${obj.get("result")}")
- findViewById<TextView>(R.id.result).text = obj.get("result").toString()
- }
- override fun onFailure(call: Call<String>, t: Throwable) {
- Log.d("am2019", "error")
- findViewById<TextView>(R.id.result).text = "error"
- }
- })
- }
- fun onClick(view : View){
- calculateResult((view as Button).text.toString(), getExpression())
- //Toast.makeText(this, (view as Button).text, Toast.LENGTH_SHORT).show()
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement