Commit 8da030db authored by Sajal Narang's avatar Sajal Narang

Add sample Retrofit code for login

parent ce530c97
...@@ -3,6 +3,7 @@ ...@@ -3,6 +3,7 @@
<component name="ProjectModuleManager"> <component name="ProjectModuleManager">
<modules> <modules>
<module fileurl="file://$PROJECT_DIR$/IITB-App.iml" filepath="$PROJECT_DIR$/IITB-App.iml" /> <module fileurl="file://$PROJECT_DIR$/IITB-App.iml" filepath="$PROJECT_DIR$/IITB-App.iml" />
<module fileurl="file://$PROJECT_DIR$/IITBApp.iml" filepath="$PROJECT_DIR$/IITBApp.iml" />
<module fileurl="file://D:\IITB-App\IITBApp.iml" filepath="D:\IITB-App\IITBApp.iml" /> <module fileurl="file://D:\IITB-App\IITBApp.iml" filepath="D:\IITB-App\IITBApp.iml" />
<module fileurl="file://$PROJECT_DIR$/app/app.iml" filepath="$PROJECT_DIR$/app/app.iml" /> <module fileurl="file://$PROJECT_DIR$/app/app.iml" filepath="$PROJECT_DIR$/app/app.iml" />
</modules> </modules>
......
...@@ -26,6 +26,8 @@ ext { ...@@ -26,6 +26,8 @@ ext {
playServicesVersion = '11.0.2' playServicesVersion = '11.0.2'
butterKnifeVersion = '8.6.0' butterKnifeVersion = '8.6.0'
appAuthVersion = '0.2.0' appAuthVersion = '0.2.0'
retrofitVersion = '2.1.0'
okhttpVersion = '3.4.1'
} }
dependencies { dependencies {
...@@ -41,4 +43,8 @@ dependencies { ...@@ -41,4 +43,8 @@ dependencies {
compile "com.android.support:support-v4:${supportLibVersion}" compile "com.android.support:support-v4:${supportLibVersion}"
compile "com.jakewharton:butterknife:${butterKnifeVersion}" compile "com.jakewharton:butterknife:${butterKnifeVersion}"
annotationProcessor "com.jakewharton:butterknife-compiler:${butterKnifeVersion}" annotationProcessor "com.jakewharton:butterknife-compiler:${butterKnifeVersion}"
compile "com.squareup.retrofit2:retrofit:${retrofitVersion}"
compile "com.squareup.retrofit2:converter-gson:${retrofitVersion}"
compile "com.squareup.okhttp3:okhttp:${okhttpVersion}"
compile "com.squareup.okhttp3:logging-interceptor:${okhttpVersion}"
} }
...@@ -15,12 +15,23 @@ import android.view.View; ...@@ -15,12 +15,23 @@ import android.view.View;
import android.widget.Button; import android.widget.Button;
import android.widget.Toast; import android.widget.Toast;
import com.google.gson.annotations.SerializedName;
import net.openid.appauth.AuthorizationException; import net.openid.appauth.AuthorizationException;
import net.openid.appauth.AuthorizationRequest; import net.openid.appauth.AuthorizationRequest;
import net.openid.appauth.AuthorizationResponse; import net.openid.appauth.AuthorizationResponse;
import net.openid.appauth.AuthorizationService; import net.openid.appauth.AuthorizationService;
import net.openid.appauth.AuthorizationServiceConfiguration; import net.openid.appauth.AuthorizationServiceConfiguration;
import in.ac.iitb.gymkhana.iitbapp.api.RetrofitInterface;
import in.ac.iitb.gymkhana.iitbapp.api.ServiceGenerator;
import in.ac.iitb.gymkhana.iitbapp.api.model.LoginRequest;
import in.ac.iitb.gymkhana.iitbapp.api.model.LoginResponse;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
import retrofit2.Retrofit;
public class LoginActivity extends AppCompatActivity { public class LoginActivity extends AppCompatActivity {
private static final String TAG = "LoginActivity"; private static final String TAG = "LoginActivity";
private final String clientId = "pFcDDWtUUfzlAX2ibriV25lm1J2m92O5ynfT4SYk"; private final String clientId = "pFcDDWtUUfzlAX2ibriV25lm1J2m92O5ynfT4SYk";
...@@ -110,6 +121,8 @@ public class LoginActivity extends AppCompatActivity { ...@@ -110,6 +121,8 @@ public class LoginActivity extends AppCompatActivity {
Toast.makeText(this, Toast.makeText(this,
"AuthCode: " + response.authorizationCode, Toast.LENGTH_SHORT) "AuthCode: " + response.authorizationCode, Toast.LENGTH_SHORT)
.show(); .show();
login(response.authorizationCode, "xyz");
} else { } else {
Log.i(TAG, "Authorization failed: " + error.getMessage()); Log.i(TAG, "Authorization failed: " + error.getMessage());
Toast.makeText(this, Toast.makeText(this,
...@@ -154,6 +167,23 @@ public class LoginActivity extends AppCompatActivity { ...@@ -154,6 +167,23 @@ public class LoginActivity extends AppCompatActivity {
} }
} }
private void login(String authorizationCode, String gcmId) {
LoginRequest loginRequest = new LoginRequest(authorizationCode, gcmId);
RetrofitInterface retrofitInterface = ServiceGenerator.createService(RetrofitInterface.class);
retrofitInterface.login(loginRequest).enqueue(new Callback<LoginResponse>() {
@Override
public void onResponse(Call<LoginResponse> call, Response<LoginResponse> response) {
if (response.isSuccessful()) {
//Go to MainActivity
}
//Server error
}
@Override
public void onFailure(Call<LoginResponse> call, Throwable t) {
//Network Error
}
});
}
} }
package in.ac.iitb.gymkhana.iitbapp; package in.ac.iitb.gymkhana.iitbapp;
import android.Manifest;
import android.content.pm.PackageManager;
import android.os.Bundle; import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.NavigationView; import android.support.design.widget.NavigationView;
import android.support.design.widget.Snackbar;
import android.support.v4.app.ActivityCompat;
import android.support.v4.app.Fragment; import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction; import android.support.v4.app.FragmentTransaction;
import android.support.v4.content.ContextCompat;
import android.support.v4.view.GravityCompat; import android.support.v4.view.GravityCompat;
import android.support.v4.widget.DrawerLayout; import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBarDrawerToggle; import android.support.v7.app.ActionBarDrawerToggle;
...@@ -18,20 +12,18 @@ import android.support.v7.app.AppCompatActivity; ...@@ -18,20 +12,18 @@ import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar; import android.support.v7.widget.Toolbar;
import android.view.Menu; import android.view.Menu;
import android.view.MenuItem; import android.view.MenuItem;
import android.view.View;
import android.widget.Toast; import in.ac.iitb.gymkhana.iitbapp.fragment.AboutFragment;
import in.ac.iitb.gymkhana.iitbapp.fragment.CMSFragment;
import in.ac.iitb.gymkhana.iitbapp.fragments.AboutFragment; import in.ac.iitb.gymkhana.iitbapp.fragment.CalendarFragment;
import in.ac.iitb.gymkhana.iitbapp.fragments.CMSFragment; import in.ac.iitb.gymkhana.iitbapp.fragment.ContactsFragment;
import in.ac.iitb.gymkhana.iitbapp.fragments.CalendarFragment; import in.ac.iitb.gymkhana.iitbapp.fragment.FeedFragment;
import in.ac.iitb.gymkhana.iitbapp.fragments.ContactsFragment; import in.ac.iitb.gymkhana.iitbapp.fragment.GCRankingsFragment;
import in.ac.iitb.gymkhana.iitbapp.fragments.FeedFragment; import in.ac.iitb.gymkhana.iitbapp.fragment.MapFragment;
import in.ac.iitb.gymkhana.iitbapp.fragments.GCRankingsFragment; import in.ac.iitb.gymkhana.iitbapp.fragment.MessMenuFragment;
import in.ac.iitb.gymkhana.iitbapp.fragments.MapFragment; import in.ac.iitb.gymkhana.iitbapp.fragment.MyEventsFragment;
import in.ac.iitb.gymkhana.iitbapp.fragments.MessMenuFragment; import in.ac.iitb.gymkhana.iitbapp.fragment.PTCellFragment;
import in.ac.iitb.gymkhana.iitbapp.fragments.MyEventsFragment; import in.ac.iitb.gymkhana.iitbapp.fragment.TimetableFragment;
import in.ac.iitb.gymkhana.iitbapp.fragments.PTCellFragment;
import in.ac.iitb.gymkhana.iitbapp.fragments.TimetableFragment;
public class MainActivity extends AppCompatActivity public class MainActivity extends AppCompatActivity
......
package in.ac.iitb.gymkhana.iitbapp.api;
import in.ac.iitb.gymkhana.iitbapp.api.model.LoginRequest;
import in.ac.iitb.gymkhana.iitbapp.api.model.LoginResponse;
import retrofit2.Call;
import retrofit2.http.Body;
import retrofit2.http.POST;
public interface RetrofitInterface {
@POST("/login/")
Call<LoginResponse> login(@Body LoginRequest loginRequest);
}
package in.ac.iitb.gymkhana.iitbapp.api;
import okhttp3.OkHttpClient;
import okhttp3.logging.HttpLoggingInterceptor;
import retrofit2.Retrofit;
import retrofit2.converter.gson.GsonConverterFactory;
public class ServiceGenerator {
//TODO: Change BASE_URL once the server is hosted
private static final String BASE_URL = "http://127.0.0.1";
private static OkHttpClient.Builder clientBuilder = new OkHttpClient.Builder();
private static Retrofit.Builder retrofitBuilder = new Retrofit.Builder()
.baseUrl(BASE_URL)
.addConverterFactory(GsonConverterFactory.create());
private static Retrofit retrofit;
public static <S> S createService(Class<S> serviceClass) {
HttpLoggingInterceptor httpLoggingInterceptor = new HttpLoggingInterceptor();
httpLoggingInterceptor.setLevel(HttpLoggingInterceptor.Level.BODY);
retrofit = retrofitBuilder.client(clientBuilder.addInterceptor(httpLoggingInterceptor).build()).build();
return retrofit.create(serviceClass);
}
}
package in.ac.iitb.gymkhana.iitbapp.api.model;
import com.google.gson.annotations.SerializedName;
public class LoginRequest {
@SerializedName("AUTHORIZATION_CODE")
private String authCode;
@SerializedName("reg_id")
private String regId;
public LoginRequest(String authCode, String regId) {
this.authCode = authCode;
this.regId = regId;
}
public String getAuthCode() {
return authCode;
}
public void setAuthCode(String authCode) {
this.authCode = authCode;
}
public String getRegId() {
return regId;
}
public void setRegId(String regId) {
this.regId = regId;
}
}
package in.ac.iitb.gymkhana.iitbapp.api.model;
public class LoginResponse {
private String result;
private String message;
public LoginResponse(String result, String message) {
this.result = result;
this.message = message;
}
public String getResult() {
return result;
}
public void setResult(String result) {
this.result = result;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
}
package in.ac.iitb.gymkhana.iitbapp.fragments; package in.ac.iitb.gymkhana.iitbapp.fragment;
import android.os.Bundle; import android.os.Bundle;
......
package in.ac.iitb.gymkhana.iitbapp.fragments; package in.ac.iitb.gymkhana.iitbapp.fragment;
import android.app.DatePickerDialog; import android.app.DatePickerDialog;
import android.app.TimePickerDialog; import android.app.TimePickerDialog;
import android.content.Context;
import android.content.Intent;
import android.database.Cursor;
import android.media.Image;
import android.net.Uri;
import android.os.Bundle; import android.os.Bundle;
import android.provider.MediaStore;
import android.support.v4.app.Fragment; import android.support.v4.app.Fragment;
import android.support.v7.widget.AppCompatCheckBox;
import android.support.v7.widget.PopupMenu;
import android.util.Log;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.MenuItem;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.widget.Button; import android.widget.Button;
...@@ -27,19 +17,12 @@ import android.widget.TextView; ...@@ -27,19 +17,12 @@ import android.widget.TextView;
import android.widget.TimePicker; import android.widget.TimePicker;
import android.widget.Toast; import android.widget.Toast;
import org.w3c.dom.Text;
import java.sql.Time;
import java.util.Calendar; import java.util.Calendar;
import butterknife.BindView; import butterknife.BindView;
import butterknife.ButterKnife; import butterknife.ButterKnife;
import in.ac.iitb.gymkhana.iitbapp.R; import in.ac.iitb.gymkhana.iitbapp.R;
import static android.app.Activity.RESULT_OK;
import static android.content.ContentValues.TAG;
import static android.view.View.VISIBLE;
public class AddEventFragment extends Fragment { public class AddEventFragment extends Fragment {
@BindView(R.id.button_createEvent) @BindView(R.id.button_createEvent)
......
package in.ac.iitb.gymkhana.iitbapp.fragments; package in.ac.iitb.gymkhana.iitbapp.fragment;
import android.os.Bundle; import android.os.Bundle;
......
package in.ac.iitb.gymkhana.iitbapp.fragments; package in.ac.iitb.gymkhana.iitbapp.fragment;
import android.os.Bundle; import android.os.Bundle;
......
package in.ac.iitb.gymkhana.iitbapp.fragments; package in.ac.iitb.gymkhana.iitbapp.fragment;
import android.os.Bundle; import android.os.Bundle;
......
package in.ac.iitb.gymkhana.iitbapp.fragments; package in.ac.iitb.gymkhana.iitbapp.fragment;
import android.os.Bundle; import android.os.Bundle;
......
package in.ac.iitb.gymkhana.iitbapp.fragments; package in.ac.iitb.gymkhana.iitbapp.fragment;
import android.os.Bundle; import android.os.Bundle;
......
package in.ac.iitb.gymkhana.iitbapp.fragments; package in.ac.iitb.gymkhana.iitbapp.fragment;
import android.Manifest; import android.Manifest;
import android.content.pm.PackageManager; import android.content.pm.PackageManager;
......
package in.ac.iitb.gymkhana.iitbapp.fragments; package in.ac.iitb.gymkhana.iitbapp.fragment;
import android.os.Bundle; import android.os.Bundle;
......
package in.ac.iitb.gymkhana.iitbapp.fragments; package in.ac.iitb.gymkhana.iitbapp.fragment;
import android.os.Bundle; import android.os.Bundle;
......
package in.ac.iitb.gymkhana.iitbapp.fragments; package in.ac.iitb.gymkhana.iitbapp.fragment;
import android.os.Bundle; import android.os.Bundle;
......
package in.ac.iitb.gymkhana.iitbapp.fragments; package in.ac.iitb.gymkhana.iitbapp.fragment;
import android.os.Bundle; import android.os.Bundle;
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
tools:context="in.ac.iitb.gymkhana.iitbapp.fragments.AboutFragment"> tools:context="in.ac.iitb.gymkhana.iitbapp.fragment.AboutFragment">
<!-- TODO: Update blank fragment layout --> <!-- TODO: Update blank fragment layout -->
<TextView <TextView
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:orientation="vertical" android:orientation="vertical"
tools:context="in.ac.iitb.gymkhana.iitbapp.fragments.AddEventFragment"> tools:context="in.ac.iitb.gymkhana.iitbapp.fragment.AddEventFragment">
<RelativeLayout <RelativeLayout
android:layout_width="match_parent" android:layout_width="match_parent"
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
tools:context="in.ac.iitb.gymkhana.iitbapp.fragments.CMSFragment"> tools:context="in.ac.iitb.gymkhana.iitbapp.fragment.CMSFragment">
<!-- TODO: Update blank fragment layout --> <!-- TODO: Update blank fragment layout -->
<TextView <TextView
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
tools:context="in.ac.iitb.gymkhana.iitbapp.fragments.ContactsFragment"> tools:context="in.ac.iitb.gymkhana.iitbapp.fragment.ContactsFragment">
<!-- TODO: Update blank fragment layout --> <!-- TODO: Update blank fragment layout -->
<TextView <TextView
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
tools:context="in.ac.iitb.gymkhana.iitbapp.fragments.FeedFragment"> tools:context="in.ac.iitb.gymkhana.iitbapp.fragment.FeedFragment">
<!-- TODO: Update blank fragment layout --> <!-- TODO: Update blank fragment layout -->
<TextView <TextView
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
tools:context="in.ac.iitb.gymkhana.iitbapp.fragments.GCRankingsFragment"> tools:context="in.ac.iitb.gymkhana.iitbapp.fragment.GCRankingsFragment">
<!-- TODO: Update blank fragment layout --> <!-- TODO: Update blank fragment layout -->
<TextView <TextView
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
tools:context="in.ac.iitb.gymkhana.iitbapp.fragments.MapFragment"> tools:context="in.ac.iitb.gymkhana.iitbapp.fragment.MapFragment">
<fragment <fragment
android:id="@+id/viewMap" android:id="@+id/viewMap"
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
tools:context="in.ac.iitb.gymkhana.iitbapp.fragments.MessMenuFragment"> tools:context="in.ac.iitb.gymkhana.iitbapp.fragment.MessMenuFragment">
<!-- TODO: Update blank fragment layout --> <!-- TODO: Update blank fragment layout -->
<TextView <TextView
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
tools:context="in.ac.iitb.gymkhana.iitbapp.fragments.MyEventsFragment"> tools:context="in.ac.iitb.gymkhana.iitbapp.fragment.MyEventsFragment">
<!-- TODO: Update blank fragment layout --> <!-- TODO: Update blank fragment layout -->
<TextView <TextView
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
tools:context="in.ac.iitb.gymkhana.iitbapp.fragments.PTCellFragment"> tools:context="in.ac.iitb.gymkhana.iitbapp.fragment.PTCellFragment">
<!-- TODO: Update blank fragment layout --> <!-- TODO: Update blank fragment layout -->
<TextView <TextView
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
tools:context="in.ac.iitb.gymkhana.iitbapp.fragments.TimetableFragment"> tools:context="in.ac.iitb.gymkhana.iitbapp.fragment.TimetableFragment">
<!-- TODO: Update blank fragment layout --> <!-- TODO: Update blank fragment layout -->
<TextView <TextView
......
...@@ -7,7 +7,7 @@ buildscript { ...@@ -7,7 +7,7 @@ buildscript {
jcenter() jcenter()
} }
dependencies { dependencies {
classpath 'com.android.tools.build:gradle:3.0.0-alpha4' classpath 'com.android.tools.build:gradle:3.0.0-alpha5'
// NOTE: Do not place your application dependencies here; they belong // NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files // in the individual module build.gradle files
......
#Fri Jun 30 22:37:20 IST 2017 #Mon Jul 03 20:03:13 IST 2017
distributionBase=GRADLE_USER_HOME distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-4.0-rc-1-all.zip distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-milestone-1-all.zip
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment