Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -62,3 +62,4 @@ fabric.properties
# *.iml
# modules.xml
app/src/main/java/io/devsummit/devsummit/Remote/ApiUtils.java
.idea/misc.xml
7 changes: 7 additions & 0 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ repositories {
}

apply plugin: 'io.fabric'
apply plugin: 'realm-android'

android {
compileSdkVersion 26
Expand All @@ -40,6 +41,9 @@ android {
}
productFlavors {
}
configurations.all {
resolutionStrategy.force 'com.google.code.findbugs:jsr305:1.3.9'
}
}

dependencies {
Expand All @@ -64,6 +68,9 @@ dependencies {
compile('com.crashlytics.sdk.android:crashlytics:2.6.8@aar') {
transitive = true;
}
compile 'de.hdodenhof:circleimageview:2.1.0'
compile 'com.squareup.picasso:picasso:2.5.2'

}


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.text.TextUtils;
import android.util.Log;
import android.view.KeyEvent;
import android.view.View;
import android.view.View.OnClickListener;
Expand All @@ -36,6 +37,10 @@
import com.facebook.accountkit.ui.AccountKitConfiguration;
import com.facebook.accountkit.ui.LoginType;

import io.devsummit.android.Helpers.RealmHelper;
import io.devsummit.android.Models.login.Photo;
import io.devsummit.android.Models.login.ProfileData;
import io.fabric.sdk.android.Fabric;
import java.util.ArrayList;
import java.util.List;

Expand All @@ -47,7 +52,8 @@
import io.devsummit.android.R;
import io.devsummit.android.Remote.APIService;
import io.devsummit.android.Remote.ApiUtils;
import io.fabric.sdk.android.Fabric;
import io.realm.Realm;
import io.realm.RealmList;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
Expand Down Expand Up @@ -94,11 +100,19 @@ protected void onCreate(Bundle savedInstanceState) {
setContentView(R.layout.activity_login);
// Set up the login form.
mEmailView = (EditText) findViewById(R.id.email);
populateAutoComplete();
mLoginButton = (Button) findViewById(R.id.email_sign_in_button);
mLoginPhoneButton = (Button) findViewById(R.id.phone_sign_in_button);
mAPIService = ApiUtils.getAPIService();
mPasswordView = (EditText) findViewById(R.id.password);
mProgressView = findViewById(R.id.login_progress);
populateAutoComplete();

}

@Override
protected void onStart() {
super.onStart();
Realm.init(this);
mPasswordView.setOnEditorActionListener(new TextView.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView textView, int id, KeyEvent keyEvent) {
Expand All @@ -109,7 +123,6 @@ public boolean onEditorAction(TextView textView, int id, KeyEvent keyEvent) {
return false;
}
});

mLoginButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
Expand All @@ -130,7 +143,8 @@ public void onClick(View view) {
clickRegister();
}
});
mProgressView = findViewById(R.id.login_progress);

authHelper.CheckTokenExpired(this);
}

private void clickRegister() {
Expand All @@ -147,7 +161,6 @@ private void populateAutoComplete() {
if (!mayRequestContacts()) {
return;
}

getLoaderManager().initLoader(0, null, this);
}

Expand Down Expand Up @@ -192,8 +205,6 @@ public void onRequestPermissionsResult(int requestCode, @NonNull String[] permis
* errors are presented and no actual login attempt is made.
*/
private void attemptLogin() {


// Reset errors.
mEmailView.setError(null);
mPasswordView.setError(null);
Expand Down Expand Up @@ -243,6 +254,7 @@ private void onLogin(String username, String password) {
@Override
public void onResponse(Call<LoginModel> call, Response<LoginModel> response) {
checkResponse(response.body());

}

@Override
Expand All @@ -263,7 +275,11 @@ private void checkResponse(LoginModel body) {
String accessToken = body.getData().getAccessToken().toString();
String refreshToken = body.getData().getRefreshToken();
authHelper.saveAccessToken(accessToken, refreshToken);
toastMessage[0] = "Welcome! " + body.getIncluded().getFirstName();
if(body.getProfileData() != null) {
RealmHelper rh = new RealmHelper();
rh.receiveData(body.getProfileData());
}
toastMessage[0] = "Welcome! " + body.getProfileData().getFirstName();
startActivity(new Intent(this, MainActivity.class));
} else if (body.getMeta().getMessage().equals("username not found") || body.getMeta().getMessage().equals("user is not registered")) {
toastMessage[0] = "username not found";
Expand Down Expand Up @@ -301,6 +317,7 @@ public void onClick(DialogInterface dialog, int id) {
showProgress(false);
}


private boolean isEmailValid(String email) {
//TODO: Replace this with your own logic
return email.length() > 4;
Expand All @@ -325,7 +342,6 @@ private void showProgress(final boolean show) {
mLoginButton.setVisibility(show ? View.INVISIBLE : View.VISIBLE);
mLoginPhoneButton.setVisibility(show ? View.INVISIBLE : View.VISIBLE);


mProgressView.setVisibility(show ? View.VISIBLE : View.GONE);
mProgressView.animate().setDuration(shortAnimTime).alpha(
show ? 1 : 0).setListener(new AnimatorListenerAdapter() {
Expand Down Expand Up @@ -413,7 +429,6 @@ protected void onActivityResult(final int requestCode, final int resultCode, fin
public void onResponse(Call<LoginModel> call, Response<LoginModel> response) {
checkResponse(response.body());
}

@Override
public void onFailure(Call<LoginModel> call, Throwable t) {
showProgress(false);
Expand Down
50 changes: 30 additions & 20 deletions app/src/main/java/io/devsummit/android/Activities/MainActivity.java
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@


import io.devsummit.android.Helpers.ExitAppHelper;
import io.devsummit.android.Fragments.UserProfileFragment;
import io.devsummit.android.R;
import io.devsummit.android.Controllers.UserTicketController;
import io.devsummit.android.Fragments.FeedFragment;
Expand All @@ -27,6 +28,7 @@ public class MainActivity extends AppCompatActivity {
private UserTicketController userTicketController;
private ProgressBar mProgressView;
private BottomNavigationView navigation;
private boolean isNavigationEnabled;

@Override
public void onBackPressed() {
Expand All @@ -40,23 +42,30 @@ public void onBackPressed() {

@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
mContainer.removeAllViews();
Fragment frag = null;
String token = authHelper.getAccessToken();
switch (item.getItemId()) {
case R.id.navigation_home:
frag = FeedFragment.newInstance();
break;
case R.id.tickets:
userTicketController.getUserTickets(token, MainActivity.this);
break;
}
if (frag != null) {
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
ft.add(R.id.container, frag, frag.getTag());
ft.commit();
if(isNavigationEnabled) {
mContainer.removeAllViews();
Fragment frag = null;
String token = authHelper.getAccessToken();
switch (item.getItemId()) {
case R.id.navigation_home:
frag = FeedFragment.newInstance();
break;
case R.id.tickets:
userTicketController.getUserTickets(token, MainActivity.this);
break;
case R.id.navigation_profile:
frag = UserProfileFragment.newInstance();
break;
}
if (frag != null) {
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
ft.add(R.id.container, frag, frag.getTag());
ft.commit();
}
return true;
}else {
return false;
}
return true;
}

};
Expand All @@ -71,13 +80,14 @@ protected void onCreate(Bundle savedInstanceState) {
navigation = (BottomNavigationView) findViewById(R.id.navigation);
userTicketController = new UserTicketController(MainActivity.this);
mContainer = (FrameLayout) findViewById(R.id.container);
}

@Override
protected void onResume() {
super.onResume();
navigation.setOnNavigationItemSelectedListener(mOnNavigationItemSelectedListener);
userTicketController.getUserTickets(authHelper.getAccessToken(), MainActivity.this);
isNavigationEnabled = true;
}

public void enableNavigation(final boolean status) {
isNavigationEnabled = status;
}

/**
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,12 @@
package io.devsummit.android.Controllers;

import android.content.Context;
import android.content.Intent;
import android.support.v4.app.Fragment;
import android.support.v7.app.AppCompatActivity;

import io.devsummit.android.Activities.LoginActivity;
import io.devsummit.android.Helpers.UserAuthenticationHelper;
import io.devsummit.android.R;
import io.devsummit.android.Activities.MainActivity;
import io.devsummit.android.Fragments.TicketFragment;
Expand All @@ -22,32 +25,46 @@ public class UserTicketController {
public UserTicketModel UserTickets;
private APIService mAPIService;
private MainActivity mMainActivity;
private UserAuthenticationHelper authHelper;


public UserTicketController(MainActivity act) {
mMainActivity = act;
UserTickets = new UserTicketModel();
mAPIService = ApiUtils.getAPIService();
authHelper = new UserAuthenticationHelper(act);
}

public void getUserTickets(String token, final Context context) {
mMainActivity.showProgress(true);
mMainActivity.enableNavigation(false);
mAPIService.fetchUserTicket(token).enqueue(new Callback<UserTicketModel>() {
@Override
public void onResponse(Call<UserTicketModel> call, Response<UserTicketModel> response) {
UserTickets = response.body();
if(UserTickets.getMessage() == null){
AppCompatActivity activity = (AppCompatActivity) context;
Fragment frag = TicketFragment.newInstance(response.body());
android.support.v4.app.FragmentTransaction ft = activity.getSupportFragmentManager().beginTransaction();
ft.add(R.id.container, frag, frag.getTag());
ft.commit();
} else {
authHelper.removeAccessToken();
authHelper.removeProfileData();
Intent i = new Intent(context, LoginActivity.class);
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
context.startActivity(i);
}
mMainActivity.showProgress(false);
mMainActivity.enableNavigation(true);

}

@Override
public void onFailure(Call<UserTicketModel> call, Throwable t) {
UserTickets = new UserTicketModel();
mMainActivity.showProgress(false);
mMainActivity.enableNavigation(true);
}
});
}
Expand Down
Loading