From b170260d56f88cc5d7c06ab27d11e21140dbe607 Mon Sep 17 00:00:00 2001 From: juyonglee79 Date: Mon, 5 Nov 2018 23:38:51 +0900 Subject: [PATCH 1/4] =?UTF-8?q?API=EB=B0=9B=EC=95=84=EC=98=A4=EA=B8=B0=20?= =?UTF-8?q?=EB=B0=8F=20=EC=9D=B8=EC=A6=9D=EB=B2=88=ED=98=B8=20=EC=9A=94?= =?UTF-8?q?=EC=B2=AD=EC=97=90=20=EB=94=B0=EB=A5=B8=20=EC=9D=B4=EB=B2=A4?= =?UTF-8?q?=ED=8A=B8=20=EC=B2=98=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/vcs.xml | 6 ++ app/src/main/AndroidManifest.xml | 3 +- .../get_terra_android_v2/Connector/API.java | 9 ++- .../Connector/Connector.java | 1 - .../Connector/ServiceGenerator.java | 23 +++--- .../get_terra_android_v2/LoginActivity.java | 78 ++++++++++++++++++- app/src/main/res/layout/activity_login.xml | 41 +++++++++- 7 files changed, 146 insertions(+), 15 deletions(-) create mode 100644 .idea/vcs.xml diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..94a25f7 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 27103ba..e253fad 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -9,13 +9,14 @@ android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/Theme.AppCompat.Light.NoActionBar"> - + + \ No newline at end of file diff --git a/app/src/main/java/com/dsm2018/get_terra_android_v2/Connector/API.java b/app/src/main/java/com/dsm2018/get_terra_android_v2/Connector/API.java index 638ff7f..2362290 100644 --- a/app/src/main/java/com/dsm2018/get_terra_android_v2/Connector/API.java +++ b/app/src/main/java/com/dsm2018/get_terra_android_v2/Connector/API.java @@ -1,5 +1,12 @@ package com.dsm2018.get_terra_android_v2.Connector; -public interface API { +import com.google.gson.JsonObject; + +import retrofit2.Call; +import retrofit2.http.Body; +import retrofit2.http.GET; +public interface API { + @GET("session") + Call post_login(@Body JsonObject jsonObject); } diff --git a/app/src/main/java/com/dsm2018/get_terra_android_v2/Connector/Connector.java b/app/src/main/java/com/dsm2018/get_terra_android_v2/Connector/Connector.java index 4cb6139..a422059 100644 --- a/app/src/main/java/com/dsm2018/get_terra_android_v2/Connector/Connector.java +++ b/app/src/main/java/com/dsm2018/get_terra_android_v2/Connector/Connector.java @@ -2,5 +2,4 @@ public class Connector { - } diff --git a/app/src/main/java/com/dsm2018/get_terra_android_v2/Connector/ServiceGenerator.java b/app/src/main/java/com/dsm2018/get_terra_android_v2/Connector/ServiceGenerator.java index 14fbee0..431bf26 100644 --- a/app/src/main/java/com/dsm2018/get_terra_android_v2/Connector/ServiceGenerator.java +++ b/app/src/main/java/com/dsm2018/get_terra_android_v2/Connector/ServiceGenerator.java @@ -1,22 +1,27 @@ package com.dsm2018.get_terra_android_v2.Connector; import okhttp3.OkHttpClient; +import okhttp3.logging.HttpLoggingInterceptor; import retrofit2.Retrofit; import retrofit2.converter.gson.GsonConverterFactory; public class ServiceGenerator { private static final String URL = "http://localhost:5000/"; - private static OkHttpClient.Builder httpClient = new OkHttpClient.Builder(); - private static Retrofit.Builder builder = - new Retrofit.Builder() - .baseUrl(URL) - .addConverterFactory(GsonConverterFactory.create()) - .client(httpClient.build()); - private static Retrofit retrofit = builder.build(); - public static S createService(Class serviceClass) { - return retrofit.create(serviceClass); + private static Retrofit retrofit = null; + public static Retrofit getClient() { + HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(); + interceptor.setLevel(HttpLoggingInterceptor.Level.BODY); + OkHttpClient client = new OkHttpClient.Builder().addInterceptor(interceptor).build(); + retrofit = new Retrofit.Builder() + .baseUrl(URL) + .addConverterFactory(GsonConverterFactory.create()) + .client(client) + .build(); + return retrofit; } + + } diff --git a/app/src/main/java/com/dsm2018/get_terra_android_v2/LoginActivity.java b/app/src/main/java/com/dsm2018/get_terra_android_v2/LoginActivity.java index 6ee440a..31b6daf 100644 --- a/app/src/main/java/com/dsm2018/get_terra_android_v2/LoginActivity.java +++ b/app/src/main/java/com/dsm2018/get_terra_android_v2/LoginActivity.java @@ -1,4 +1,78 @@ package com.dsm2018.get_terra_android_v2; -public class LoginActivity { -} +import android.content.Intent; +import android.os.Bundle; +import android.support.v7.app.AppCompatActivity; +import android.view.View; +import android.widget.Button; +import android.widget.EditText; +import android.widget.Toast; + +import com.dsm2018.get_terra_android_v2.Connector.API; +import com.dsm2018.get_terra_android_v2.Connector.ServiceGenerator; +import com.google.gson.JsonObject; + +import retrofit2.Call; +import retrofit2.Callback; +import retrofit2.Response; + +public class LoginActivity extends AppCompatActivity { + Button login; + EditText email; + EditText certificationNum; + String getEmail; + String getCertificationNum; + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + final String mail = "^[_a-zA-Z0-9-\\.]+@[\\.a-zA-Z0-9-]+\\.[a-zA-Z]+$"; + setContentView(R.layout.activity_login); + login=(Button)findViewById(R.id.login_btn); + email=(EditText)findViewById(R.id.email_et); + certificationNum=(EditText)findViewById(R.id.certificationNum_et); + login.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + getEmail=email.getText().toString(); + getCertificationNum=certificationNum.getText().toString(); + getEmail=getEmail.trim(); + getCertificationNum=getCertificationNum.trim(); + if(getEmail.getBytes().length<=0|getCertificationNum.getBytes().length<=0){ + Toast.makeText(getApplicationContext(),"이메일 혹은 인증번호가 입력되지 않았습니다",Toast.LENGTH_SHORT).show(); + } + else if(getEmail.matches(mail)){ + Toast.makeText(getApplicationContext(),"이메일 형식이 잘못되었습니다.",Toast.LENGTH_SHORT).show(); + } + else{ + post(); + } + } + }); + } + public void post(){ + API retrofit= ServiceGenerator.getClient().create(API.class); + JsonObject jsonObject=new JsonObject(); + jsonObject.addProperty("serial_number",getCertificationNum); + Call call= retrofit.post_login(jsonObject); + call.enqueue(new Callback() { + @Override + public void onResponse(Call call, Response response) { + Void repo = response.body(); + if(response.code()==200) { + Intent intent = new Intent(getApplicationContext(), MainActivity.class); + startActivity(intent); + finish(); + } + else{ + Toast.makeText(getApplicationContext(),"인증번호가 맞지 않습니다.",Toast.LENGTH_SHORT).show(); + } + } + + @Override + public void onFailure(Call call, Throwable t) { + + } + }); + } +} \ No newline at end of file diff --git a/app/src/main/res/layout/activity_login.xml b/app/src/main/res/layout/activity_login.xml index d8fb324..a8b8283 100644 --- a/app/src/main/res/layout/activity_login.xml +++ b/app/src/main/res/layout/activity_login.xml @@ -1,6 +1,45 @@ + + + + +