diff --git a/app/app.iml b/app/app.iml
index cb2d34f..ea727fb 100644
--- a/app/app.iml
+++ b/app/app.iml
@@ -1,5 +1,5 @@
-
+
@@ -12,8 +12,9 @@
-
+
+
@@ -85,9 +86,28 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
\ No newline at end of file
diff --git a/app/build.gradle b/app/build.gradle
index 4e9ad46..cda4c3f 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -29,10 +29,32 @@ android {
exclude 'META-INF/LICENSE'
exclude 'META-INF/NOTICE'
}
-
+// dexOptions {
+// incremental true
+// javaMaxHeapSize "4g"
+// }
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:22.2.1'
+ compile 'com.squareup.picasso:picasso:2.4.0'
+ compile 'com.android.support:support-v4:22.+'
+ compile 'com.android.support:support-v13:22.+'
+ compile 'com.android.support:support-annotations:22.+'
+ compile 'com.android.support:appcompat-v7:22.+'
+ compile 'com.android.support:cardview-v7:22.+'
+ compile 'com.android.support:design:22.2.0'
+ compile 'com.google.android.gms:play-services-plus:+'
+ compile 'com.fasterxml.jackson.core:jackson-core:2.5.3'
+ compile 'com.fasterxml.jackson.core:jackson-databind:2.5.3'
+ compile 'com.fasterxml.jackson.core:jackson-annotations:2.5.3'
+ compile 'com.squareup.okhttp:okhttp:2.4.0'
+ compile 'com.squareup.okhttp:okhttp-urlconnection:2.4.0'
+ compile 'org.apache.commons:commons-lang3:3.0'
+ compile 'com.jakewharton:butterknife:7.0.0'
+ compile 'com.nineoldandroids:library:2.4.0'
+ compile 'com.squareup.retrofit:retrofit:1.9.0'
+ compile 'com.squareup.retrofit:converter-jackson:1.9.0'
+ compile 'com.facebook.android:facebook-android-sdk:4.1.0'
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index aeb441d..b4e95d6 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -30,6 +30,35 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/java/com/slidenetwork/Slide/activities/AbsSlideActiviy.java b/app/src/main/java/com/slidenetwork/Slide/activities/AbsSlideActiviy.java
new file mode 100644
index 0000000..b3df7f7
--- /dev/null
+++ b/app/src/main/java/com/slidenetwork/Slide/activities/AbsSlideActiviy.java
@@ -0,0 +1,14 @@
+package com.slidenetwork.Slide.activities;
+
+import android.app.Activity;
+
+import retrofit.RetrofitError;
+
+
+public class AbsSlideActiviy extends Activity {
+
+ public void handleRetrofitErrors(RetrofitError error){
+ int responseCode=error.getResponse().getStatus();
+
+ }
+}
diff --git a/app/src/main/java/com/slidenetwork/Slide/activities/DeepLinkParserActivity.java b/app/src/main/java/com/slidenetwork/Slide/activities/DeepLinkParserActivity.java
new file mode 100644
index 0000000..610d8b4
--- /dev/null
+++ b/app/src/main/java/com/slidenetwork/Slide/activities/DeepLinkParserActivity.java
@@ -0,0 +1,38 @@
+package com.slidenetwork.Slide.activities;
+
+import android.app.Activity;
+import android.content.Intent;
+import android.os.Bundle;
+
+import com.slidenetwork.Slide.R;
+import com.slidenetwork.Slide.utils.Constants;
+import com.slidenetwork.Slide.utils.Toolbox;
+
+
+public class DeepLinkParserActivity extends Activity {
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.dummy_layout_deeplink);
+ Intent intent=getIntent();
+ String action=intent.getAction();
+ String data=intent.getDataString();
+ Toolbox.writeToLog("Token from browser " + data);
+ Intent out=new Intent(DeepLinkParserActivity.this,SigninWithEmailActivity.class);
+ out.putExtra(Constants.DEEPLINK_TOKEN,data=parseLinkData(data));
+ Toolbox.writeToLog("Token from browser after " + data);
+ startActivity(out);
+ finish();
+ }
+
+ private String parseLinkData(String data){
+ if(data==null) return data;
+ if(data.contains("activate")){
+ String[] split=data.split("/");
+ int index=split.length>0?split.length-1:-1;
+ if(index>-1) return split[index];
+ }
+ return null;
+ }
+}
diff --git a/app/src/main/java/com/slidenetwork/Slide/activities/EmailVerify.java b/app/src/main/java/com/slidenetwork/Slide/activities/EmailVerify.java
new file mode 100644
index 0000000..20d502f
--- /dev/null
+++ b/app/src/main/java/com/slidenetwork/Slide/activities/EmailVerify.java
@@ -0,0 +1,57 @@
+package com.slidenetwork.Slide.activities;
+
+import android.app.Activity;
+import android.content.Intent;
+import android.os.Bundle;
+import android.view.View;
+import android.widget.Button;
+import android.widget.TextView;
+
+import com.slidenetwork.Slide.R;
+
+public class EmailVerify extends Activity {
+
+ TextView tvTotxt, tvWelcome, tvSubHeader, tvActivateAndroid;
+ Button btOpenEmail;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_email_verify);
+
+ tvTotxt=(TextView) findViewById(R.id.tvToTxt);
+ tvWelcome = (TextView) findViewById(R.id.tvWelcome);
+ tvSubHeader = (TextView) findViewById(R.id.tvSubHeader);
+ tvActivateAndroid = (TextView) findViewById(R.id.tvActivateAndroid);
+
+ btOpenEmail =(Button) findViewById(R.id.btnOpenEmail);
+
+ Intent intent= getIntent();
+ Bundle b = intent.getExtras();
+ if(b!=null)
+ {
+ String StrEmailAddress =(String) b.get("email");
+ String StrSubject = (String) b.get("email_subject");
+ String StrTitle = (String) b.get("title");
+ String StrMessage = (String) b.get("message");
+
+ tvTotxt.setText(StrEmailAddress);
+ tvWelcome.setText(StrTitle);
+ tvSubHeader.setText(StrMessage);
+ tvActivateAndroid.setText(StrSubject);
+
+ }
+
+ btOpenEmail.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ //Open Email
+ Intent intent = new Intent(Intent.ACTION_MAIN);
+ intent.addCategory(Intent.CATEGORY_APP_EMAIL);
+ startActivity(intent);
+ }
+ });
+
+ }
+
+}
diff --git a/app/src/main/java/com/slidenetwork/Slide/activities/HomeActivity.java b/app/src/main/java/com/slidenetwork/Slide/activities/HomeActivity.java
old mode 100644
new mode 100755
index 8f33a5f..20f813b
--- a/app/src/main/java/com/slidenetwork/Slide/activities/HomeActivity.java
+++ b/app/src/main/java/com/slidenetwork/Slide/activities/HomeActivity.java
@@ -1,108 +1,108 @@
-package com.slidenetwork.Slide.activities;
-
-import android.app.Activity;
-import android.app.FragmentTransaction;
-import android.content.Intent;
-import android.os.Bundle;
-import android.view.View;
-import android.widget.Button;
-
-import com.slidenetwork.Slide.R;
-import com.slidenetwork.Slide.fragments.SignupFragment;
-import com.slidenetwork.Slide.utils.Constants;
-import com.slidenetwork.Slide.utils.SharedPreferencesManager;
-import com.slidenetwork.Slide.utils.Toolbox;
-
-public class HomeActivity extends Activity {
-
- Button btnGetStarted, btnAddCard;
- private WalletState walletstate;
-
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_home);
- btnGetStarted = (Button) findViewById(R.id.btnGetStarted);
- btnGetStarted.setVisibility(View.GONE);
- btnAddCard = (Button) findViewById(R.id.btnAddCard);
- btnAddCard.setVisibility(View.GONE);
-
- String Token = SharedPreferencesManager.getString(HomeActivity.this, Constants.PREFS_AUTHTOKEND, "");
- Toolbox.writeToLog("Home Activity Token " + Token);
-
- walletstate = WalletState.WalletStateInitial;
- Intent intent = getIntent();
- Bundle b = intent.getExtras();
- if (b != null) {
- String StrWalletState = (String) b.get("walletState");
- if (StrWalletState.equalsIgnoreCase("WalletStateCheckUser")) {
- walletstate = WalletState.WalletStateCheckUser;
- btnAddCard.setVisibility(View.VISIBLE);
- setNextState();
- }
- } else {
- //If Token is Available then Change the Wallet State else show Default Screen
- if (Token.length() > 0) {
- walletstate = WalletState.WalletStateFetchUser;
- btnAddCard.setVisibility(View.VISIBLE);
- setNextState();
- } else {
- setNextState();
- }
- }
-
-
- // On Get Started Click Open the ActionSheeet for Login Type
- btnGetStarted.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v)
- {
- SignupFragment sf = new SignupFragment();
- FragmentTransaction transaction = getFragmentManager().beginTransaction();
- transaction.add(R.id.SignInActionSheet, sf);
- transaction.commit();
- }
- });
-
- }
-
- public void setNextState(){
-
- if(walletstate == WalletState.WalletStateInitial || walletstate == WalletState.WalletStateNonSecure){
- btnGetStarted.setVisibility(View.VISIBLE);
- } else if (walletstate == WalletState.WalletStateCheckUser) {
- String Token = SharedPreferencesManager.getString(HomeActivity.this, Constants.PREFS_AUTHTOKEND, "");
- if (Token.length() > 0) {
- walletstate = WalletState.WalletStateFetchUser;
- setNextState();
- }
- } else if (walletstate == WalletState.WalletStateFetchUser) {
-
-
- } else if (walletstate == WalletState.WalletStateFetchAndCheckCards) {
-
-
- }
-
- }
-
-
- public enum WalletState {
- WalletStateInitial,
- WalletStateCheckSlideToken,
- WalletStateNonSecure,
- WalletStateFetchFacebookAccessToken,
- WalletStateFetchGoogleAccessToken,
- WalletStateRefreshToken,
- WalletStateCheckUser,
- WalletStateFetchUser,
- WalletStateFetchAndCheckCards,
- WalletStateEmptyWallet,
- WalletStateShowWallet,
- WalletStateCardDetail,
- WalletStatePayNow,
- WalletStateShowTerms
- }
-
-
-}
+package com.slidenetwork.Slide.activities;
+
+import android.app.Activity;
+import android.app.FragmentTransaction;
+import android.content.Intent;
+import android.os.Bundle;
+import android.view.View;
+import android.widget.Button;
+
+import com.slidenetwork.Slide.R;
+import com.slidenetwork.Slide.fragments.SignupFragment;
+import com.slidenetwork.Slide.utils.Constants;
+import com.slidenetwork.Slide.utils.SharedPreferencesManager;
+import com.slidenetwork.Slide.utils.Toolbox;
+
+public class HomeActivity extends Activity {
+
+ Button btnGetStarted, btnAddCard;
+ private WalletState walletstate;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_home);
+ btnGetStarted = (Button) findViewById(R.id.btnGetStarted);
+ btnGetStarted.setVisibility(View.GONE);
+ btnAddCard = (Button) findViewById(R.id.btnAddCard);
+ btnAddCard.setVisibility(View.GONE);
+
+ String Token = SharedPreferencesManager.getString(HomeActivity.this, Constants.PREFS_AUTHTOKEND, "");
+ Toolbox.writeToLog("Home Activity Token " + Token);
+
+ walletstate = WalletState.WalletStateInitial;
+ Intent intent = getIntent();
+ Bundle b = intent.getExtras();
+ if (b != null) {
+ String StrWalletState = (String) b.get("walletState");
+ if (StrWalletState.equalsIgnoreCase("WalletStateCheckUser")) {
+ walletstate = WalletState.WalletStateCheckUser;
+ btnAddCard.setVisibility(View.VISIBLE);
+ setNextState();
+ }
+ } else {
+ //If Token is Available then Change the Wallet State else show Default Screen
+ if (Token.length() > 0) {
+ walletstate = WalletState.WalletStateFetchUser;
+ btnAddCard.setVisibility(View.VISIBLE);
+ setNextState();
+ } else {
+ setNextState();
+ }
+ }
+
+
+ // On Get Started Click Open the ActionSheeet for Login Type
+ btnGetStarted.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v)
+ {
+ SignupFragment sf = new SignupFragment();
+ FragmentTransaction transaction = getFragmentManager().beginTransaction();
+ transaction.add(R.id.SignInActionSheet, sf);
+ transaction.commit();
+ }
+ });
+
+ }
+
+ public void setNextState(){
+
+ if(walletstate == WalletState.WalletStateInitial || walletstate == WalletState.WalletStateNonSecure){
+ btnGetStarted.setVisibility(View.VISIBLE);
+ } else if (walletstate == WalletState.WalletStateCheckUser) {
+ String Token = SharedPreferencesManager.getString(HomeActivity.this, Constants.PREFS_AUTHTOKEND, "");
+ if (Token.length() > 0) {
+ walletstate = WalletState.WalletStateFetchUser;
+ setNextState();
+ }
+ } else if (walletstate == WalletState.WalletStateFetchUser) {
+
+
+ } else if (walletstate == WalletState.WalletStateFetchAndCheckCards) {
+
+
+ }
+
+ }
+
+
+ public enum WalletState {
+ WalletStateInitial,
+ WalletStateCheckSlideToken,
+ WalletStateNonSecure,
+ WalletStateFetchFacebookAccessToken,
+ WalletStateFetchGoogleAccessToken,
+ WalletStateRefreshToken,
+ WalletStateCheckUser,
+ WalletStateFetchUser,
+ WalletStateFetchAndCheckCards,
+ WalletStateEmptyWallet,
+ WalletStateShowWallet,
+ WalletStateCardDetail,
+ WalletStatePayNow,
+ WalletStateShowTerms
+ }
+
+
+}
diff --git a/app/src/main/java/com/slidenetwork/Slide/activities/SigninWithEmailActivity.java b/app/src/main/java/com/slidenetwork/Slide/activities/SigninWithEmailActivity.java
new file mode 100755
index 0000000..9b5ee20
--- /dev/null
+++ b/app/src/main/java/com/slidenetwork/Slide/activities/SigninWithEmailActivity.java
@@ -0,0 +1,192 @@
+package com.slidenetwork.Slide.activities;
+
+import android.app.Activity;
+import android.content.Intent;
+import android.os.Bundle;
+import android.text.Editable;
+import android.text.TextWatcher;
+import android.view.View;
+import android.widget.Button;
+import android.widget.EditText;
+import android.widget.Toast;
+
+import com.slidenetwork.Slide.R;
+import com.slidenetwork.Slide.api.APIGetToken;
+import com.slidenetwork.Slide.api.entities.APIPatchToken;
+import com.slidenetwork.Slide.api.entities.email_token_response.EmailTokenResponse;
+import com.slidenetwork.Slide.api.entities.patch_token.PatchTokenResponse;
+import com.slidenetwork.Slide.utils.Constants;
+import com.slidenetwork.Slide.utils.SharedPreferencesManager;
+import com.slidenetwork.Slide.utils.Toolbox;
+import com.slidenetwork.Slide.utils.Utility;
+
+import org.json.JSONArray;
+import org.json.JSONException;
+import org.json.JSONObject;
+
+import java.util.List;
+
+import retrofit.Callback;
+import retrofit.RetrofitError;
+import retrofit.client.Header;
+import retrofit.client.Response;
+import retrofit.mime.TypedByteArray;
+
+
+public class SigninWithEmailActivity extends Activity {
+
+
+ EditText emailValidate;
+ Callback emailTokenResponseCallback = new Callback() {
+ @Override
+ public void success(EmailTokenResponse o, Response response) {
+ Toolbox.writeToLog("Retrofit response success" + response.getBody());
+ String token_id = o.getData().getId();
+ SharedPreferencesManager.writeString(SigninWithEmailActivity.this, Constants.PREFS_TOKENID, token_id);
+ printHeaders(response.getHeaders());
+ JSONObject ResponseData = new JSONObject();
+ JSONObject metaObj = new JSONObject();
+ JSONArray messageArr = new JSONArray();
+ JSONObject messageObj = new JSONObject();
+ JSONObject userDetailsObj = new JSONObject();
+
+
+ try {
+ ResponseData = new JSONObject(new String(((TypedByteArray) response.getBody()).getBytes()));
+ Toolbox.writeToLog("Retrofit response Status " + ResponseData);
+ metaObj = ResponseData.getJSONObject("meta");
+ messageArr = metaObj.getJSONArray("messages");
+ messageObj = messageArr.getJSONObject(0);
+
+
+ } catch (JSONException e) {
+ e.printStackTrace();
+ }
+
+
+ if (response.getStatus() == 202) {
+ Intent intent = new Intent(getBaseContext(), EmailVerify.class);
+ try {
+ userDetailsObj = messageObj.getJSONObject("user_detail");
+ intent.putExtra("email", userDetailsObj.getString("email"));
+ intent.putExtra("email_subject", userDetailsObj.getString("email_subject"));
+ intent.putExtra("title", userDetailsObj.getString("title"));
+ intent.putExtra("message", userDetailsObj.getString("message"));
+ startActivity(intent);
+ } catch (JSONException e) {
+ e.printStackTrace();
+ }
+
+ } else if (response.getStatus() == 201) {
+
+ SharedPreferencesManager.writeString(SigninWithEmailActivity.this, Constants.PREFS_AUTHTOKEND, o.getData().getAccess_token());
+ SharedPreferencesManager.writeString(SigninWithEmailActivity.this, Constants.PREFS_TOKEN_CREATED_AT, o.getData().getCreated_at());
+ SharedPreferencesManager.writeString(SigninWithEmailActivity.this, Constants.PREFS_TOKEN_EXPIRES_AT, o.getData().getExpires_at());
+ SharedPreferencesManager.writeString(SigninWithEmailActivity.this, Constants.PREFS_REFRESH_TOKEN, o.getData().getRefresh_token());
+
+ GotoHomeActivity();
+ }
+
+ }
+
+ @Override
+ public void failure(RetrofitError error) {
+ Toolbox.writeToLog("Retrofit errror " + error);
+ printHeaders(error.getResponse().getHeaders());
+ }
+ };
+ Callback patchTokenResponseCallback = new Callback() {
+ @Override
+ public void success(PatchTokenResponse patchTokenResponse, Response response) {
+ Toolbox.writeToLog("Retrofit response success" + response.getStatus());
+ printHeaders(response.getHeaders());
+ SharedPreferencesManager.writeString(SigninWithEmailActivity.this, Constants.PREFS_AUTHTOKEND, patchTokenResponse.getData().getAccess_token());
+ SharedPreferencesManager.writeString(SigninWithEmailActivity.this, Constants.PREFS_TOKEN_CREATED_AT, patchTokenResponse.getData().getCreated_at());
+ SharedPreferencesManager.writeString(SigninWithEmailActivity.this, Constants.PREFS_TOKEN_EXPIRES_AT, patchTokenResponse.getData().getExpires_at());
+ SharedPreferencesManager.writeString(SigninWithEmailActivity.this, Constants.PREFS_REFRESH_TOKEN, patchTokenResponse.getData().getRefresh_token());
+
+ GotoHomeActivity();
+
+
+ }
+
+ @Override
+ public void failure(RetrofitError error) {
+ Toolbox.writeToLog("Retrofit errror " + error);
+ printHeaders(error.getResponse().getHeaders());
+
+ }
+ };
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_email_signin);
+
+ int SDK_INT = android.os.Build.VERSION.SDK_INT;
+ Intent in = getIntent();
+ String data = in != null ? in.getStringExtra(Constants.DEEPLINK_TOKEN) : null;
+ if (data != null) {
+ Toolbox.writeToLog("Token from browser 3 " + data);
+ String token_id = SharedPreferencesManager.getString(this, Constants.PREFS_TOKENID, null);
+ if (token_id != null)
+ APIPatchToken.patchAuthToken(token_id, Toolbox.getPatchRequest(data), patchTokenResponseCallback);
+ } else {
+ emailValidate = (EditText) findViewById(R.id.etEmail);
+
+ Button btnClose = (Button) findViewById(R.id.btnClose);
+ btnClose.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ finish();
+ }
+ });
+
+ final Button btnNext = (Button) findViewById(R.id.btnNext);
+ btnNext.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ String email = emailValidate.getText().toString().trim();
+ if (Utility.isEmailValid(email)) {
+ APIGetToken.getAuthToken(Toolbox.getTokenRequest(SigninWithEmailActivity.this, email), emailTokenResponseCallback);
+ } else {
+ Toast.makeText(getApplicationContext(), "Please enter valid email Id.", Toast.LENGTH_LONG).show();
+ }
+ }
+ });
+
+
+ emailValidate.addTextChangedListener(new TextWatcher() {
+ @Override
+ public void afterTextChanged(Editable arg0) {
+ boolean isReady = emailValidate.getText().toString().length() > 0;
+ btnNext.setEnabled(isReady);
+ }
+
+ @Override
+ public void beforeTextChanged(CharSequence s, int start, int count, int after) {
+ }
+
+ @Override
+ public void onTextChanged(CharSequence s, int start, int before, int count) {
+ }
+ });
+ }
+
+ }
+
+ private void printHeaders(List headers){
+ for(Header h:headers){
+ Toolbox.writeToLog("Retro Headers "+h.getName()+":"+h.getValue());
+ }
+ }
+
+
+ public void GotoHomeActivity() {
+ Intent homeIntent = new Intent(getBaseContext(), HomeActivity.class);
+ homeIntent.putExtra("walletState", "WalletStateCheckUser");
+ startActivity(homeIntent);
+ }
+
+}
+
diff --git a/app/src/main/java/com/slidenetwork/Slide/api/APIGetToken.java b/app/src/main/java/com/slidenetwork/Slide/api/APIGetToken.java
new file mode 100644
index 0000000..a39a89e
--- /dev/null
+++ b/app/src/main/java/com/slidenetwork/Slide/api/APIGetToken.java
@@ -0,0 +1,33 @@
+package com.slidenetwork.Slide.api;
+
+import com.slidenetwork.Slide.api.api_interfaces.IApiGetToken;
+import com.slidenetwork.Slide.api.entities.TokenRequest;
+import com.slidenetwork.Slide.api.entities.email_token_response.EmailTokenResponse;
+import com.slidenetwork.Slide.utils.Constants;
+import com.slidenetwork.Slide.utils.Toolbox;
+
+import retrofit.Callback;
+import retrofit.RetrofitError;
+import retrofit.client.Response;
+
+public final class APIGetToken extends APIRoot {
+
+ public static void getAuthToken(TokenRequest request, final Callback callback){
+ IApiGetToken token=createService(IApiGetToken.class,Constants.BASE_URL);
+
+ token.getToken(request, new Callback() {
+ @Override
+ public void success(EmailTokenResponse s, Response response) {
+ Toolbox.writeToLog("Retrofit " + response.getHeaders());
+ callback.success(s, response);
+ }
+
+ @Override
+ public void failure(RetrofitError error){
+ callback.failure(error);
+ }
+ });
+
+
+ }
+}
diff --git a/app/src/main/java/com/slidenetwork/Slide/api/APIRoot.java b/app/src/main/java/com/slidenetwork/Slide/api/APIRoot.java
new file mode 100644
index 0000000..25163da
--- /dev/null
+++ b/app/src/main/java/com/slidenetwork/Slide/api/APIRoot.java
@@ -0,0 +1,34 @@
+package com.slidenetwork.Slide.api;
+
+import com.slidenetwork.Slide.BuildConfig;
+import com.slidenetwork.Slide.utils.Utility;
+import com.squareup.okhttp.OkHttpClient;
+
+import retrofit.RequestInterceptor;
+import retrofit.RestAdapter;
+import retrofit.client.OkClient;
+
+public class APIRoot {
+ public static S createService(Class serviceClass, String baseUrl) {
+ OkHttpClient client=new OkHttpClient();
+ client.setFollowRedirects(true);
+
+ RestAdapter.Builder builder = new RestAdapter.Builder()
+ .setEndpoint(baseUrl)
+ .setClient(new OkClient(client))
+ .setRequestInterceptor(new RequestInterceptor() {
+ @Override
+ public void intercept(RequestFacade request) {
+ request.addHeader("Content-Type", "application/json");
+ request.addHeader("User-Agent", "Mozilla/5.0 (iPhone; CPU iPhone OS 8_1 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Version/8.0 Mobile/12B410 Safari/600.1.4 [snv/1.1.6;snd/iPhone7,2;sno/8.1;snc/310_AT&T]");
+ request.addHeader("Accept", Utility.getAccept());
+ }
+ });
+ if(BuildConfig.DEBUG) builder.setLogLevel(RestAdapter.LogLevel.FULL);
+// .setConverter(new JacksonConverter());
+
+ RestAdapter adapter = builder.build();
+
+ return adapter.create(serviceClass);
+ }
+}
diff --git a/app/src/main/java/com/slidenetwork/Slide/api/DataFetchEvent.java b/app/src/main/java/com/slidenetwork/Slide/api/DataFetchEvent.java
new file mode 100644
index 0000000..b24f912
--- /dev/null
+++ b/app/src/main/java/com/slidenetwork/Slide/api/DataFetchEvent.java
@@ -0,0 +1,86 @@
+package com.slidenetwork.Slide.api;
+
+public final class DataFetchEvent {
+
+ private long requestTimestamp;
+ private T dataObject;
+ private String url;
+ private String message;
+ private int requestId;
+
+ /**
+ * Instantiates a new Data fetch event.
+ *
+ * @param requestId the request id
+ * @param requestTimestamp the request timestamp
+ * @param url the url
+ */
+ public DataFetchEvent(int requestId, long requestTimestamp, String url) {
+ this.requestId = requestId;
+ this.requestTimestamp = requestTimestamp;
+ this.url = url;
+ }
+
+ /**
+ * Instantiates a new Data fetch event.
+ *
+ * @param requestId the request id
+ * @param requestTimestamp the request timestamp
+ * @param url the url
+ * @param dataObject the data object
+ * @param message the message
+ */
+ public DataFetchEvent(int requestId, long requestTimestamp, String url, T dataObject, String message) {
+ this.requestId = requestId;
+ this.requestTimestamp = requestTimestamp;
+ this.dataObject = dataObject;
+ this.url = url;
+ this.message = message;
+ }
+
+ /**
+ * Gets url.
+ *
+ * @return the url
+ */
+ public String getUrl() {
+ return url;
+ }
+
+
+ /**
+ * Gets message.
+ *
+ * @return the message
+ */
+ public String getMessage() {
+ return message;
+ }
+
+ /**
+ * Gets request timestamp.
+ *
+ * @return the request timestamp
+ */
+ public long getRequestTimestamp() {
+ return requestTimestamp;
+ }
+
+ /**
+ * Gets data object.
+ *
+ * @return the data object
+ */
+ public T getDataObject() {
+ return dataObject;
+ }
+
+ /**
+ * Gets request id.
+ *
+ * @return the request id
+ */
+ public int getRequestId() {
+ return requestId;
+ }
+}
diff --git a/app/src/main/java/com/slidenetwork/Slide/api/DataFetchListener.java b/app/src/main/java/com/slidenetwork/Slide/api/DataFetchListener.java
new file mode 100644
index 0000000..b90a4e8
--- /dev/null
+++ b/app/src/main/java/com/slidenetwork/Slide/api/DataFetchListener.java
@@ -0,0 +1,13 @@
+package com.slidenetwork.Slide.api;
+
+import retrofit.Callback;
+
+
+public interface DataFetchListener extends Callback {
+
+ void onStart(DataFetchEvent event);
+
+
+ enum FailureType {NO_INTERNET, PARSE_ERROR, NETWORK_ERROR, DB_ERROR}
+
+}
diff --git a/app/src/main/java/com/slidenetwork/Slide/api/api_interfaces/IApiGetToken.java b/app/src/main/java/com/slidenetwork/Slide/api/api_interfaces/IApiGetToken.java
new file mode 100644
index 0000000..afa5aa0
--- /dev/null
+++ b/app/src/main/java/com/slidenetwork/Slide/api/api_interfaces/IApiGetToken.java
@@ -0,0 +1,13 @@
+package com.slidenetwork.Slide.api.api_interfaces;
+
+import com.slidenetwork.Slide.api.entities.TokenRequest;
+import com.slidenetwork.Slide.api.entities.email_token_response.EmailTokenResponse;
+
+import retrofit.Callback;
+import retrofit.http.Body;
+import retrofit.http.POST;
+
+public interface IApiGetToken {
+ @POST("/tokens")
+ void getToken(@Body TokenRequest request, Callback listener);
+}
diff --git a/app/src/main/java/com/slidenetwork/Slide/api/api_interfaces/IApiPatchToken.java b/app/src/main/java/com/slidenetwork/Slide/api/api_interfaces/IApiPatchToken.java
new file mode 100644
index 0000000..6b0c4a3
--- /dev/null
+++ b/app/src/main/java/com/slidenetwork/Slide/api/api_interfaces/IApiPatchToken.java
@@ -0,0 +1,15 @@
+package com.slidenetwork.Slide.api.api_interfaces;
+
+import com.slidenetwork.Slide.api.entities.patch_token.PatchTokenRequest;
+import com.slidenetwork.Slide.api.entities.patch_token.PatchTokenResponse;
+
+import retrofit.Callback;
+import retrofit.http.Body;
+import retrofit.http.PATCH;
+import retrofit.http.Path;
+
+
+public interface IApiPatchToken {
+ @PATCH("/tokens/{tokenID}")
+ void patchToken(@Path("tokenID")String token,@Body PatchTokenRequest request, Callback listener);
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/slidenetwork/Slide/api/entities/APIPatchToken.java b/app/src/main/java/com/slidenetwork/Slide/api/entities/APIPatchToken.java
new file mode 100644
index 0000000..725964f
--- /dev/null
+++ b/app/src/main/java/com/slidenetwork/Slide/api/entities/APIPatchToken.java
@@ -0,0 +1,29 @@
+package com.slidenetwork.Slide.api.entities;
+
+import com.slidenetwork.Slide.api.APIRoot;
+import com.slidenetwork.Slide.api.api_interfaces.IApiPatchToken;
+import com.slidenetwork.Slide.api.entities.patch_token.PatchTokenRequest;
+import com.slidenetwork.Slide.api.entities.patch_token.PatchTokenResponse;
+import com.slidenetwork.Slide.utils.Constants;
+
+import retrofit.Callback;
+import retrofit.RetrofitError;
+import retrofit.client.Response;
+
+
+public class APIPatchToken extends APIRoot {
+ public static void patchAuthToken(final String token,PatchTokenRequest req, final Callback listener){
+ IApiPatchToken patchReq=createService(IApiPatchToken.class, Constants.BASE_URL);
+ patchReq.patchToken(token, req, new Callback() {
+ @Override
+ public void success(PatchTokenResponse o, Response response) {
+ listener.success(o,response);
+ }
+
+ @Override
+ public void failure(RetrofitError error) {
+ listener.failure(error);
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/slidenetwork/Slide/api/entities/TokenRequest.java b/app/src/main/java/com/slidenetwork/Slide/api/entities/TokenRequest.java
new file mode 100644
index 0000000..3403935
--- /dev/null
+++ b/app/src/main/java/com/slidenetwork/Slide/api/entities/TokenRequest.java
@@ -0,0 +1,38 @@
+package com.slidenetwork.Slide.api.entities;
+
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+
+@JsonInclude(JsonInclude.Include.NON_NULL)
+@JsonPropertyOrder({
+ "data"
+})
+public class TokenRequest {
+
+ @JsonProperty("data")
+ private TokenRequestData data;
+
+ /**
+ *
+ * @return
+ * The data
+ */
+ @JsonProperty("data")
+ public TokenRequestData getData() {
+ return data;
+ }
+
+ /**
+ *
+ * @param data
+ * The data
+ */
+ @JsonProperty("data")
+ public void setData(TokenRequestData data) {
+ this.data = data;
+ }
+
+
+}
diff --git a/app/src/main/java/com/slidenetwork/Slide/api/entities/TokenRequestData.java b/app/src/main/java/com/slidenetwork/Slide/api/entities/TokenRequestData.java
new file mode 100644
index 0000000..0fb5fbf
--- /dev/null
+++ b/app/src/main/java/com/slidenetwork/Slide/api/entities/TokenRequestData.java
@@ -0,0 +1,225 @@
+package com.slidenetwork.Slide.api.entities;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@JsonInclude(JsonInclude.Include.NON_NULL)
+@JsonPropertyOrder({
+ "type",
+ "auth_method",
+ "auth_token",
+ "email",
+ "device_name",
+ "device_display",
+ "device_identifier",
+ "local_time",
+ "locale"
+})
+public class TokenRequestData {
+
+ @JsonProperty("type")
+ private String type;
+ @JsonProperty("auth_method")
+ private String auth_method;
+ @JsonProperty("auth_token")
+ private String auth_token;
+ @JsonProperty("email")
+ private String email;
+ @JsonProperty("device_name")
+ private String device_name;
+ @JsonProperty("device_display")
+ private List device_display = new ArrayList();
+ @JsonProperty("device_identifier")
+ private String device_identifier;
+ @JsonProperty("local_time")
+ private String local_time;
+ @JsonProperty("locale")
+ private String locale;
+
+ /**
+ *
+ * @return
+ * The type
+ */
+ @JsonProperty("type")
+ public String getType() {
+ return type;
+ }
+
+ /**
+ *
+ * @param type
+ * The type
+ */
+ @JsonProperty("type")
+ public void setType(String type) {
+ this.type = type;
+ }
+
+ /**
+ *
+ * @return
+ * The authMethod
+ */
+ @JsonProperty("auth_method")
+ public String getAuthMethod() {
+ return auth_method;
+ }
+
+ /**
+ *
+ * @param authMethod
+ * The auth_method
+ */
+ @JsonProperty("auth_method")
+ public void setAuthMethod(String authMethod) {
+ this.auth_method = authMethod;
+ }
+
+ /**
+ *
+ * @return
+ * The authToken
+ */
+ @JsonProperty("auth_token")
+ public String getAuthToken() {
+ return auth_token;
+ }
+
+ /**
+ *
+ * @param authToken
+ * The auth_token
+ */
+ @JsonProperty("auth_token")
+ public void setAuthToken(String authToken) {
+ this.auth_token = authToken;
+ }
+
+ /**
+ *
+ * @return
+ * The email
+ */
+ @JsonProperty("email")
+ public String getEmail() {
+ return email;
+ }
+
+ /**
+ *
+ * @param email
+ * The email
+ */
+ @JsonProperty("email")
+ public void setEmail(String email) {
+ this.email = email;
+ }
+
+ /**
+ *
+ * @return
+ * The deviceName
+ */
+ @JsonProperty("device_name")
+ public String getDeviceName() {
+ return device_name;
+ }
+
+ /**
+ *
+ * @param deviceName
+ * The device_name
+ */
+ @JsonProperty("device_name")
+ public void setDeviceName(String deviceName) {
+ this.device_name = deviceName;
+ }
+
+ /**
+ *
+ * @return
+ * The deviceDisplay
+ */
+ @JsonProperty("device_display")
+ public List getDeviceDisplay() {
+ return device_display;
+ }
+
+ /**
+ *
+ * @param deviceDisplay
+ * The device_display
+ */
+ @JsonProperty("device_display")
+ public void setDeviceDisplay(List deviceDisplay) {
+ this.device_display = deviceDisplay;
+ }
+
+ /**
+ *
+ * @return
+ * The deviceIdentifier
+ */
+ @JsonProperty("device_identifier")
+ public String getDeviceIdentifier() {
+ return device_identifier;
+ }
+
+ /**
+ *
+ * @param deviceIdentifier
+ * The device_identifier
+ */
+ @JsonProperty("device_identifier")
+ public void setDeviceIdentifier(String deviceIdentifier) {
+ this.device_identifier = deviceIdentifier;
+ }
+
+ /**
+ *
+ * @return
+ * The localTime
+ */
+ @JsonProperty("local_time")
+ public String getLocalTime() {
+ return local_time;
+ }
+
+ /**
+ *
+ * @param localTime
+ * The local_time
+ */
+ @JsonProperty("local_time")
+ public void setLocalTime(String localTime) {
+ this.local_time = localTime;
+ }
+
+ /**
+ *
+ * @return
+ * The locale
+ */
+ @JsonProperty("locale")
+ public String getLocale() {
+ return locale;
+ }
+
+ /**
+ *
+ * @param locale
+ * The locale
+ */
+ @JsonProperty("locale")
+ public void setLocale(String locale) {
+ this.locale = locale;
+ }
+
+
+
+}
diff --git a/app/src/main/java/com/slidenetwork/Slide/api/entities/email_token_response/EmailTokenData.java b/app/src/main/java/com/slidenetwork/Slide/api/entities/email_token_response/EmailTokenData.java
new file mode 100644
index 0000000..ddad62d
--- /dev/null
+++ b/app/src/main/java/com/slidenetwork/Slide/api/entities/email_token_response/EmailTokenData.java
@@ -0,0 +1,200 @@
+package com.slidenetwork.Slide.api.entities.email_token_response;
+
+
+public class EmailTokenData {
+
+
+ private String id;
+ private String access_token;
+ private String refresh_token;
+ private Boolean active;
+ private String expires_at;
+ private String updated_at;
+ private String created_at;
+ private String type;
+ private String token_type;
+ private Links links;
+
+ /**
+ *
+ * @return
+ * The id
+ */
+ public String getId() {
+ return id;
+ }
+
+ /**
+ *
+ * @param id
+ * The id
+ */
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ /**
+ *
+ * @return
+ * The access_token
+ */
+ public String getAccess_token() {
+ return access_token;
+ }
+
+ /**
+ *
+ * @param access_token
+ * The access_token
+ */
+ public void setAccess_token(String access_token) {
+ this.access_token = access_token;
+ }
+
+ /**
+ *
+ * @return
+ * The refresh_token
+ */
+ public String getRefresh_token() {
+ return refresh_token;
+ }
+
+ /**
+ *
+ * @param refresh_token
+ * The refresh_token
+ */
+ public void setRefresh_token(String refresh_token) {
+ this.refresh_token = refresh_token;
+ }
+
+ /**
+ *
+ * @return
+ * The active
+ */
+ public Boolean getActive() {
+ return active;
+ }
+
+ /**
+ *
+ * @param active
+ * The active
+ */
+ public void setActive(Boolean active) {
+ this.active = active;
+ }
+
+ /**
+ *
+ * @return
+ * The expires_at
+ */
+ public String getExpires_at() {
+ return expires_at;
+ }
+
+ /**
+ *
+ * @param expires_at
+ * The expires_at
+ */
+ public void setExpires_at(String expires_at) {
+ this.expires_at = expires_at;
+ }
+
+ /**
+ *
+ * @return
+ * The updated_at
+ */
+ public String getUpdated_at() {
+ return updated_at;
+ }
+
+ /**
+ *
+ * @param updated_at
+ * The updated_at
+ */
+ public void setUpdated_at(String updated_at) {
+ this.updated_at = updated_at;
+ }
+
+ /**
+ *
+ * @return
+ * The created_at
+ */
+ public String getCreated_at() {
+ return created_at;
+ }
+
+ /**
+ *
+ * @param created_at
+ * The created_at
+ */
+ public void setCreated_at(String created_at) {
+ this.created_at = created_at;
+ }
+
+ /**
+ *
+ * @return
+ * The type
+ */
+ public String getType() {
+ return type;
+ }
+
+ /**
+ *
+ * @param type
+ * The type
+ */
+ public void setType(String type) {
+ this.type = type;
+ }
+
+ /**
+ *
+ * @return
+ * The token_type
+ */
+ public String getToken_type() {
+ return token_type;
+ }
+
+ /**
+ *
+ * @param token_type
+ * The token_type
+ */
+ public void setToken_type(String token_type) {
+ this.token_type = token_type;
+ }
+
+ /**
+ *
+ * @return
+ * The links
+ */
+ public Links getLinks() {
+ return links;
+ }
+
+ /**
+ *
+ * @param links
+ * The links
+ */
+ public void setLinks(Links links) {
+ this.links = links;
+ }
+
+
+
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/slidenetwork/Slide/api/entities/email_token_response/EmailTokenResponse.java b/app/src/main/java/com/slidenetwork/Slide/api/entities/email_token_response/EmailTokenResponse.java
new file mode 100644
index 0000000..5f18cc6
--- /dev/null
+++ b/app/src/main/java/com/slidenetwork/Slide/api/entities/email_token_response/EmailTokenResponse.java
@@ -0,0 +1,67 @@
+package com.slidenetwork.Slide.api.entities.email_token_response;
+
+import java.util.HashMap;
+import java.util.Map;
+
+//-----------------------------------com.example.Example.java-----------------------------------
+
+
+public class EmailTokenResponse {
+
+ private EmailTokenData data;
+ private Meta meta;
+ private Map additionalProperties = new HashMap();
+
+ /**
+ *
+ * @return
+ * The data
+ */
+ public EmailTokenData getData() {
+ return data;
+ }
+
+ /**
+ *
+ * @param data
+ * The data
+ */
+ public void setData(EmailTokenData data) {
+ this.data = data;
+ }
+
+ /**
+ *
+ * @return
+ * The meta
+ */
+ public Meta getMeta() {
+ return meta;
+ }
+
+ /**
+ *
+ * @param meta
+ * The meta
+ */
+ public void setMeta(Meta meta) {
+ this.meta = meta;
+ }
+
+ public Map getAdditionalProperties() {
+ return this.additionalProperties;
+ }
+
+ public void setAdditionalProperty(String name, Object value) {
+ this.additionalProperties.put(name, value);
+ }
+
+}
+//-----------------------------------com.example.Links.java-----------------------------------
+
+//-----------------------------------com.example.Message.java-----------------------------------
+
+
+//-----------------------------------com.example.Meta.java-----------------------------------
+
+
diff --git a/app/src/main/java/com/slidenetwork/Slide/api/entities/email_token_response/Links.java b/app/src/main/java/com/slidenetwork/Slide/api/entities/email_token_response/Links.java
new file mode 100644
index 0000000..81606f9
--- /dev/null
+++ b/app/src/main/java/com/slidenetwork/Slide/api/entities/email_token_response/Links.java
@@ -0,0 +1,44 @@
+package com.slidenetwork.Slide.api.entities.email_token_response;
+
+
+public class Links {
+
+ private String self;
+ private String device;
+ private String user;
+
+ /**
+ *
+ * @return
+ * The self
+ */
+ public String getSelf() {
+ return self;
+ }
+
+ /**
+ *
+ * @param self
+ * The self
+ */
+ public void setSelf(String self) {
+ this.self = self;
+ }
+
+ public String getUser() {
+ return user;
+ }
+
+ public void setUser(String user) {
+ this.user = user;
+ }
+
+ public String getDevice() {
+ return device;
+ }
+
+ public void setDevice(String device) {
+ this.device = device;
+ }
+}
+
diff --git a/app/src/main/java/com/slidenetwork/Slide/api/entities/email_token_response/Message.java b/app/src/main/java/com/slidenetwork/Slide/api/entities/email_token_response/Message.java
new file mode 100644
index 0000000..ca84e73
--- /dev/null
+++ b/app/src/main/java/com/slidenetwork/Slide/api/entities/email_token_response/Message.java
@@ -0,0 +1,153 @@
+package com.slidenetwork.Slide.api.entities.email_token_response;
+
+import java.util.HashMap;
+import java.util.Map;
+
+
+public class Message {
+
+ private String code;
+ private String detail;
+ private String email;
+ private String email_subject;
+ private String source;
+ private String title;
+ private User_detail user_detail;
+ private Map additionalProperties = new HashMap();
+
+
+ /**
+ *
+ * @return
+ * The code
+ */
+ public String getCode() {
+ return code;
+ }
+
+ /**
+ *
+ * @param code
+ * The code
+ */
+ public void setCode(String code) {
+ this.code = code;
+ }
+
+ /**
+ *
+ * @return
+ * The detail
+ */
+ public String getDetail() {
+ return detail;
+ }
+
+ /**
+ *
+ * @param detail
+ * The detail
+ */
+ public void setDetail(String detail) {
+ this.detail = detail;
+ }
+
+ /**
+ *
+ * @return
+ * The email
+ */
+ public String getEmail() {
+ return email;
+ }
+
+ /**
+ *
+ * @param email
+ * The email
+ */
+ public void setEmail(String email) {
+ this.email = email;
+ }
+
+ /**
+ *
+ * @return
+ * The email_subject
+ */
+ public String getEmail_subject() {
+ return email_subject;
+ }
+
+ /**
+ *
+ * @param email_subject
+ * The email_subject
+ */
+ public void setEmail_subject(String email_subject) {
+ this.email_subject = email_subject;
+ }
+
+ /**
+ *
+ * @return
+ * The source
+ */
+ public String getSource() {
+ return source;
+ }
+
+ /**
+ *
+ * @param source
+ * The source
+ */
+ public void setSource(String source) {
+ this.source = source;
+ }
+
+ /**
+ *
+ * @return
+ * The title
+ */
+ public String getTitle() {
+ return title;
+ }
+
+ /**
+ *
+ * @param title
+ * The title
+ */
+ public void setTitle(String title) {
+ this.title = title;
+ }
+
+ /**
+ *
+ * @return
+ * The user_detail
+ */
+ public User_detail getUser_detail() {
+ return user_detail;
+ }
+
+ /**
+ *
+ * @param user_detail
+ * The user_detail
+ */
+ public void setUser_detail(User_detail user_detail) {
+ this.user_detail = user_detail;
+ }
+
+ public Map getAdditionalProperties() {
+ return this.additionalProperties;
+ }
+
+ public void setAdditionalProperty(String name, Object value) {
+ this.additionalProperties.put(name, value);
+ }
+
+}
diff --git a/app/src/main/java/com/slidenetwork/Slide/api/entities/email_token_response/Meta.java b/app/src/main/java/com/slidenetwork/Slide/api/entities/email_token_response/Meta.java
new file mode 100644
index 0000000..5ec8de6
--- /dev/null
+++ b/app/src/main/java/com/slidenetwork/Slide/api/entities/email_token_response/Meta.java
@@ -0,0 +1,31 @@
+package com.slidenetwork.Slide.api.entities.email_token_response;
+
+import java.util.ArrayList;
+import java.util.List;
+
+
+public class Meta {
+
+ private List messages = new ArrayList();
+
+ /**
+ *
+ * @return
+ * The messages
+ */
+ public List getMessages() {
+ return messages;
+ }
+
+ /**
+ *
+ * @param messages
+ * The messages
+ */
+ public void setMessages(List messages) {
+ this.messages = messages;
+ }
+
+
+
+}
diff --git a/app/src/main/java/com/slidenetwork/Slide/api/entities/email_token_response/User_detail.java b/app/src/main/java/com/slidenetwork/Slide/api/entities/email_token_response/User_detail.java
new file mode 100644
index 0000000..a9f12b4
--- /dev/null
+++ b/app/src/main/java/com/slidenetwork/Slide/api/entities/email_token_response/User_detail.java
@@ -0,0 +1,84 @@
+package com.slidenetwork.Slide.api.entities.email_token_response;
+
+//-----------------------------------com.example.User_detail.java-----------------------------------
+public class User_detail {
+
+ private String email;
+ private String email_subject;
+ private String message;
+ private String title;
+
+ /**
+ *
+ * @return
+ * The email
+ */
+ public String getEmail() {
+ return email;
+ }
+
+ /**
+ *
+ * @param email
+ * The email
+ */
+ public void setEmail(String email) {
+ this.email = email;
+ }
+
+ /**
+ *
+ * @return
+ * The email_subject
+ */
+ public String getEmail_subject() {
+ return email_subject;
+ }
+
+ /**
+ *
+ * @param email_subject
+ * The email_subject
+ */
+ public void setEmail_subject(String email_subject) {
+ this.email_subject = email_subject;
+ }
+
+ /**
+ *
+ * @return
+ * The message
+ */
+ public String getMessage() {
+ return message;
+ }
+
+ /**
+ *
+ * @param message
+ * The message
+ */
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ /**
+ *
+ * @return
+ * The title
+ */
+ public String getTitle() {
+ return title;
+ }
+
+ /**
+ *
+ * @param title
+ * The title
+ */
+ public void setTitle(String title) {
+ this.title = title;
+ }
+
+
+}
diff --git a/app/src/main/java/com/slidenetwork/Slide/api/entities/error/Error.java b/app/src/main/java/com/slidenetwork/Slide/api/entities/error/Error.java
new file mode 100644
index 0000000..b8e6ab3
--- /dev/null
+++ b/app/src/main/java/com/slidenetwork/Slide/api/entities/error/Error.java
@@ -0,0 +1,103 @@
+package com.slidenetwork.Slide.api.entities.error;
+
+public class Error {
+
+ private String code;
+ private String detail;
+ private Meta meta;
+ private String source;
+ private String title;
+
+ /**
+ *
+ * @return
+ * The code
+ */
+ public String getCode() {
+ return code;
+ }
+
+ /**
+ *
+ * @param code
+ * The code
+ */
+ public void setCode(String code) {
+ this.code = code;
+ }
+
+ /**
+ *
+ * @return
+ * The detail
+ */
+ public String getDetail() {
+ return detail;
+ }
+
+ /**
+ *
+ * @param detail
+ * The detail
+ */
+ public void setDetail(String detail) {
+ this.detail = detail;
+ }
+
+ /**
+ *
+ * @return
+ * The meta
+ */
+ public Meta getMeta() {
+ return meta;
+ }
+
+ /**
+ *
+ * @param meta
+ * The meta
+ */
+ public void setMeta(Meta meta) {
+ this.meta = meta;
+ }
+
+ /**
+ *
+ * @return
+ * The source
+ */
+ public String getSource() {
+ return source;
+ }
+
+ /**
+ *
+ * @param source
+ * The source
+ */
+ public void setSource(String source) {
+ this.source = source;
+ }
+
+ /**
+ *
+ * @return
+ * The title
+ */
+ public String getTitle() {
+ return title;
+ }
+
+ /**
+ *
+ * @param title
+ * The title
+ */
+ public void setTitle(String title) {
+ this.title = title;
+ }
+
+
+
+}
diff --git a/app/src/main/java/com/slidenetwork/Slide/api/entities/error/ErrorResponse.java b/app/src/main/java/com/slidenetwork/Slide/api/entities/error/ErrorResponse.java
new file mode 100644
index 0000000..2736df0
--- /dev/null
+++ b/app/src/main/java/com/slidenetwork/Slide/api/entities/error/ErrorResponse.java
@@ -0,0 +1,35 @@
+package com.slidenetwork.Slide.api.entities.error;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class ErrorResponse {
+
+ private List errors = new ArrayList();
+
+ /**
+ *
+ * @return
+ * The errors
+ */
+ public List getErrors() {
+ return errors;
+ }
+
+ /**
+ *
+ * @param errors
+ * The errors
+ */
+ public void setErrors(List errors) {
+ this.errors = errors;
+ }
+
+
+}
+//-----------------------------------com.example.Meta.java-----------------------------------
+
+//-----------------------------------com.example.User_detail.java-----------------------------------
+
+
+
diff --git a/app/src/main/java/com/slidenetwork/Slide/api/entities/error/Meta.java b/app/src/main/java/com/slidenetwork/Slide/api/entities/error/Meta.java
new file mode 100644
index 0000000..527506f
--- /dev/null
+++ b/app/src/main/java/com/slidenetwork/Slide/api/entities/error/Meta.java
@@ -0,0 +1,28 @@
+package com.slidenetwork.Slide.api.entities.error;
+
+
+public class Meta {
+
+ private User_detail user_detail;
+
+ /**
+ *
+ * @return
+ * The user_detail
+ */
+ public User_detail getUser_detail() {
+ return user_detail;
+ }
+
+ /**
+ *
+ * @param user_detail
+ * The user_detail
+ */
+ public void setUser_detail(User_detail user_detail) {
+ this.user_detail = user_detail;
+ }
+
+
+
+}
diff --git a/app/src/main/java/com/slidenetwork/Slide/api/entities/error/User_detail.java b/app/src/main/java/com/slidenetwork/Slide/api/entities/error/User_detail.java
new file mode 100644
index 0000000..2d09b75
--- /dev/null
+++ b/app/src/main/java/com/slidenetwork/Slide/api/entities/error/User_detail.java
@@ -0,0 +1,26 @@
+package com.slidenetwork.Slide.api.entities.error;
+
+
+public class User_detail {
+
+ private String title;
+ /**
+ *
+ * @return
+ * The title
+ */
+ public String getTitle() {
+ return title;
+ }
+
+ /**
+ *
+ * @param title
+ * The title
+ */
+ public void setTitle(String title) {
+ this.title = title;
+ }
+
+
+}
diff --git a/app/src/main/java/com/slidenetwork/Slide/api/entities/patch_token/PatchTokenRequest.java b/app/src/main/java/com/slidenetwork/Slide/api/entities/patch_token/PatchTokenRequest.java
new file mode 100644
index 0000000..bbdae8d
--- /dev/null
+++ b/app/src/main/java/com/slidenetwork/Slide/api/entities/patch_token/PatchTokenRequest.java
@@ -0,0 +1,30 @@
+package com.slidenetwork.Slide.api.entities.patch_token;
+
+
+//-----------------------------------com.example.PatchTokenRequest.java-----------------------------------
+
+public class PatchTokenRequest {
+
+ private PatchTokenRequestData data;
+
+ /**
+ *
+ * @return
+ * The data
+ */
+ public PatchTokenRequestData getData() {
+ return data;
+ }
+
+ /**
+ *
+ * @param data
+ * The data
+ */
+ public void setData(PatchTokenRequestData data) {
+ this.data = data;
+ }
+
+
+
+}
diff --git a/app/src/main/java/com/slidenetwork/Slide/api/entities/patch_token/PatchTokenRequestData.java b/app/src/main/java/com/slidenetwork/Slide/api/entities/patch_token/PatchTokenRequestData.java
new file mode 100644
index 0000000..3684e6b
--- /dev/null
+++ b/app/src/main/java/com/slidenetwork/Slide/api/entities/patch_token/PatchTokenRequestData.java
@@ -0,0 +1,86 @@
+package com.slidenetwork.Slide.api.entities.patch_token;
+
+
+public class PatchTokenRequestData {
+
+
+ private String type;
+ private String auth_method;
+ private String auth_token;
+ private String email;
+
+ /**
+ *
+ * @return
+ * The type
+ */
+ public String getType() {
+ return type;
+ }
+
+ /**
+ *
+ * @param type
+ * The type
+ */
+ public void setType(String type) {
+ this.type = type;
+ }
+
+ /**
+ *
+ * @return
+ * The auth_method
+ */
+ public String getAuth_method() {
+ return auth_method;
+ }
+
+ /**
+ *
+ * @param auth_method
+ * The auth_method
+ */
+ public void setAuth_method(String auth_method) {
+ this.auth_method = auth_method;
+ }
+
+ /**
+ *
+ * @return
+ * The auth_token
+ */
+ public String getAuth_token() {
+ return auth_token;
+ }
+
+ /**
+ *
+ * @param auth_token
+ * The auth_token
+ */
+ public void setAuth_token(String auth_token) {
+ this.auth_token = auth_token;
+ }
+
+ /**
+ *
+ * @return
+ * The email
+ */
+ public String getEmail() {
+ return email;
+ }
+
+ /**
+ *
+ * @param email
+ * The email
+ */
+ public void setEmail(String email) {
+ this.email = email;
+ }
+
+
+
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/slidenetwork/Slide/api/entities/patch_token/PatchTokenResponse.java b/app/src/main/java/com/slidenetwork/Slide/api/entities/patch_token/PatchTokenResponse.java
new file mode 100644
index 0000000..a8706d4
--- /dev/null
+++ b/app/src/main/java/com/slidenetwork/Slide/api/entities/patch_token/PatchTokenResponse.java
@@ -0,0 +1,48 @@
+package com.slidenetwork.Slide.api.entities.patch_token;
+
+
+import com.slidenetwork.Slide.api.entities.email_token_response.Meta;
+
+public class PatchTokenResponse {
+
+ private PatchTokenResponseData data;
+ private Meta meta;
+
+ /**
+ *
+ * @return
+ * The data
+ */
+ public PatchTokenResponseData getData() {
+ return data;
+ }
+
+ /**
+ *
+ * @param data
+ * The data
+ */
+ public void setData(PatchTokenResponseData data) {
+ this.data = data;
+ }
+
+ /**
+ *
+ * @return
+ * The meta
+ */
+ public Meta getMeta() {
+ return meta;
+ }
+
+ /**
+ *
+ * @param meta
+ * The meta
+ */
+ public void setMeta(Meta meta) {
+ this.meta = meta;
+ }
+
+
+}
diff --git a/app/src/main/java/com/slidenetwork/Slide/api/entities/patch_token/PatchTokenResponseData.java b/app/src/main/java/com/slidenetwork/Slide/api/entities/patch_token/PatchTokenResponseData.java
new file mode 100644
index 0000000..42f9de3
--- /dev/null
+++ b/app/src/main/java/com/slidenetwork/Slide/api/entities/patch_token/PatchTokenResponseData.java
@@ -0,0 +1,201 @@
+package com.slidenetwork.Slide.api.entities.patch_token;
+
+import com.slidenetwork.Slide.api.entities.email_token_response.Links;
+
+
+public class PatchTokenResponseData {
+
+ private String id;
+ private String access_token;
+ private String refresh_token;
+ private Boolean active;
+ private String expires_at;
+ private String updated_at;
+ private String created_at;
+ private String type;
+ private String token_type;
+ private Links links;
+
+ /**
+ *
+ * @return
+ * The id
+ */
+ public String getId() {
+ return id;
+ }
+
+ /**
+ *
+ * @param id
+ * The id
+ */
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ /**
+ *
+ * @return
+ * The access_token
+ */
+ public String getAccess_token() {
+ return access_token;
+ }
+
+ /**
+ *
+ * @param access_token
+ * The access_token
+ */
+ public void setAccess_token(String access_token) {
+ this.access_token = access_token;
+ }
+
+ /**
+ *
+ * @return
+ * The refresh_token
+ */
+ public String getRefresh_token() {
+ return refresh_token;
+ }
+
+ /**
+ *
+ * @param refresh_token
+ * The refresh_token
+ */
+ public void setRefresh_token(String refresh_token) {
+ this.refresh_token = refresh_token;
+ }
+
+ /**
+ *
+ * @return
+ * The active
+ */
+ public Boolean getActive() {
+ return active;
+ }
+
+ /**
+ *
+ * @param active
+ * The active
+ */
+ public void setActive(Boolean active) {
+ this.active = active;
+ }
+
+ /**
+ *
+ * @return
+ * The expires_at
+ */
+ public String getExpires_at() {
+ return expires_at;
+ }
+
+ /**
+ *
+ * @param expires_at
+ * The expires_at
+ */
+ public void setExpires_at(String expires_at) {
+ this.expires_at = expires_at;
+ }
+
+ /**
+ *
+ * @return
+ * The updated_at
+ */
+ public String getUpdated_at() {
+ return updated_at;
+ }
+
+ /**
+ *
+ * @param updated_at
+ * The updated_at
+ */
+ public void setUpdated_at(String updated_at) {
+ this.updated_at = updated_at;
+ }
+
+ /**
+ *
+ * @return
+ * The created_at
+ */
+ public String getCreated_at() {
+ return created_at;
+ }
+
+ /**
+ *
+ * @param created_at
+ * The created_at
+ */
+ public void setCreated_at(String created_at) {
+ this.created_at = created_at;
+ }
+
+ /**
+ *
+ * @return
+ * The type
+ */
+ public String getType() {
+ return type;
+ }
+
+ /**
+ *
+ * @param type
+ * The type
+ */
+ public void setType(String type) {
+ this.type = type;
+ }
+
+ /**
+ *
+ * @return
+ * The token_type
+ */
+ public String getToken_type() {
+ return token_type;
+ }
+
+ /**
+ *
+ * @param token_type
+ * The token_type
+ */
+ public void setToken_type(String token_type) {
+ this.token_type = token_type;
+ }
+
+ /**
+ *
+ * @return
+ * The links
+ */
+ public Links getLinks() {
+ return links;
+ }
+
+ /**
+ *
+ * @param links
+ * The links
+ */
+ public void setLinks(Links links) {
+ this.links = links;
+ }
+
+
+
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/slidenetwork/Slide/fragments/SignupFragment.java b/app/src/main/java/com/slidenetwork/Slide/fragments/SignupFragment.java
index d7acb67..5145f90 100644
--- a/app/src/main/java/com/slidenetwork/Slide/fragments/SignupFragment.java
+++ b/app/src/main/java/com/slidenetwork/Slide/fragments/SignupFragment.java
@@ -10,6 +10,7 @@
import android.widget.Button;
import com.slidenetwork.Slide.R;
+import com.slidenetwork.Slide.activities.SigninWithEmailActivity;
public class SignupFragment extends Fragment {
@@ -35,6 +36,8 @@ public void onClick(View v)
{
@Override
public void onClick(View v){
+ Intent fbIntent = new Intent(getActivity(), SigninWithEmailActivity.class);
+ startActivity(fbIntent);
}
});
diff --git a/app/src/main/java/com/slidenetwork/Slide/utils/Toolbox.java b/app/src/main/java/com/slidenetwork/Slide/utils/Toolbox.java
index 110021c..43d2621 100644
--- a/app/src/main/java/com/slidenetwork/Slide/utils/Toolbox.java
+++ b/app/src/main/java/com/slidenetwork/Slide/utils/Toolbox.java
@@ -1,8 +1,21 @@
package com.slidenetwork.Slide.utils;
+import android.content.Context;
import android.support.annotation.NonNull;
+import android.telephony.TelephonyManager;
import android.util.Log;
+
+import com.slidenetwork.Slide.api.entities.TokenRequest;
+import com.slidenetwork.Slide.api.entities.TokenRequestData;
+import com.slidenetwork.Slide.api.entities.patch_token.PatchTokenRequest;
+import com.slidenetwork.Slide.api.entities.patch_token.PatchTokenRequestData;
+
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.Locale;
+import java.util.TimeZone;
public final class Toolbox {
@@ -90,4 +103,56 @@ public static boolean writeToLog(int level, String tag, @NonNull String logMessa
}
}
+
+ public static PatchTokenRequest getPatchRequest(String auth){
+ PatchTokenRequest req=new PatchTokenRequest();
+ PatchTokenRequestData data=new PatchTokenRequestData();
+ data.setAuth_token(auth);
+ data.setEmail("");
+ data.setType(Constants.DEEPLINK_TOKEN);
+ data.setAuth_method(Constants.AUTHMETHOD.EMAIL.getName());
+ req.setData(data);
+ return req;
+ }
+
+ public static TokenRequest getTokenRequest(Context context,String email){
+ TokenRequest request=new TokenRequest();
+ TokenRequestData data=new TokenRequestData();
+ data.setAuthMethod(Constants.AUTHMETHOD.EMAIL.getName());
+ data.setAuthToken("");
+// jsonParam.put("auth_token", "");
+ data.setEmail(email);
+ data.setDeviceName(Utility.getDeviceName());
+ ArrayList nums=new ArrayList();
+ nums.add(750);
+ nums.add(1334);
+ nums.add(24);
+ data.setDeviceDisplay(nums);
+
+ TelephonyManager telephonyManager = (TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE);
+ String deviceId = telephonyManager.getDeviceId();
+ data.setDeviceIdentifier(deviceId);
+ Calendar cal=Calendar.getInstance(Locale.getDefault());
+ cal.setTimeInMillis(System.currentTimeMillis());
+
+ String date= Toolbox.formatDate(cal.getTimeInMillis(), TimeZone.getDefault());
+ data.setLocalTime(date);
+// Toolbox.formatDate(cal.getTimeInMillis(), TimeZone.getDefault());
+ data.setLocale(Locale.getDefault().getDisplayLanguage());
+ request.setData(data);
+ return request;
+ }
+
+ /**
+ * Format date.
+ *
+ * @param unixTimestamp the unix timestamp
+ * @param timeZone the time zone
+ * @return the string
+ */
+ public static String formatDate(long unixTimestamp, TimeZone timeZone) {
+ SimpleDateFormat sdf = new SimpleDateFormat(simpleDateFormat.toPattern());
+ sdf.setTimeZone(timeZone);
+ return sdf.format(new Date(unixTimestamp));
+ }
}
\ No newline at end of file