Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
39 commits
Select commit Hold shift + click to select a range
ce08d77
Add realm
wndisra Oct 9, 2017
093fb3d
Add picasso, circleimageview, and fix conflict dependency
wndisra Oct 9, 2017
57abb67
Change to usercontroller when navigate
wndisra Oct 9, 2017
3a53c67
Delete unnecessary
wndisra Oct 9, 2017
8d3207f
Add user feed controller
wndisra Oct 9, 2017
4ec0ea0
Handle recycler view
wndisra Oct 9, 2017
b6536ee
Add scroll listener to feed
wndisra Oct 9, 2017
aada49c
Add inet connection helper
wndisra Oct 9, 2017
2392a84
Add realm helper
wndisra Oct 9, 2017
73a607d
Add text helper
wndisra Oct 9, 2017
3154ba2
Add user feed model
wndisra Oct 9, 2017
263f93a
Add feed data model
wndisra Oct 9, 2017
a64f6ff
Add links user feed model
wndisra Oct 9, 2017
c387237
Add photo user feed model
wndisra Oct 9, 2017
db66829
Add user feed model
wndisra Oct 9, 2017
c629d77
Add feed endpoint
wndisra Oct 9, 2017
18650b7
Add feed list view adapter
wndisra Oct 9, 2017
6b189cf
Move method to helper
wndisra Oct 9, 2017
e0cb840
Add user feed default image
wndisra Oct 9, 2017
6db7156
Add needed strings
wndisra Oct 9, 2017
781c117
Change title
wndisra Oct 9, 2017
68b2022
Add feed row style
wndisra Oct 9, 2017
1ba1348
Fix feed fragment style
wndisra Oct 9, 2017
f678703
Add feed attachment style
wndisra Oct 9, 2017
1d81e24
Add necessary resources
wndisra Oct 9, 2017
8d88166
Modify misc.xml
wndisra Oct 9, 2017
5ba9b6d
Handle current page load
wndisra Oct 9, 2017
93bb0aa
Change to viewpager
wndisra Oct 10, 2017
50c899e
Change to viewpager
wndisra Oct 10, 2017
1e04f19
Remove call fragment
wndisra Oct 10, 2017
26a3963
Remove call fragment
wndisra Oct 10, 2017
3d6f06e
Remove feed fragment & add attach adapter
wndisra Oct 10, 2017
e323431
Remove new instance & add attach fragment
wndisra Oct 10, 2017
5e95cd9
Change object to string
wndisra Oct 10, 2017
da67d7d
Change param order
wndisra Oct 10, 2017
4d54d2b
Add view pager adapter
wndisra Oct 10, 2017
24e3c39
Change to viewpager
wndisra Oct 10, 2017
8dbc701
Add margin
wndisra Oct 10, 2017
687ab3c
Change navigation order
wndisra Oct 10, 2017
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
2 changes: 1 addition & 1 deletion .idea/misc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

21 changes: 11 additions & 10 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -9,18 +9,12 @@ buildscript {
}
apply plugin: 'com.android.application'
apply plugin: 'io.fabric'
apply plugin: 'realm-android'

repositories {
maven { url 'https://maven.fabric.io/public' }
}


repositories {
maven { url 'https://maven.fabric.io/public' }
}

apply plugin: 'io.fabric'

android {
compileSdkVersion 26
buildToolsVersion '26.0.1'
Expand All @@ -40,6 +34,14 @@ android {
}
productFlavors {
}

configurations.all {
resolutionStrategy.force 'com.google.code.findbugs:jsr305:1.3.9'
}

realm {
syncEnabled = true;
}
}

dependencies {
Expand All @@ -64,7 +66,6 @@ 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.4.0"
}



87 changes: 63 additions & 24 deletions app/src/main/java/io/devsummit/android/Activities/MainActivity.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,77 +7,116 @@
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.design.widget.BottomNavigationView;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentTransaction;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.MenuItem;
import android.view.View;
import android.widget.FrameLayout;
import android.widget.ProgressBar;


import io.devsummit.android.Helpers.ExitAppHelper;
import io.devsummit.android.R;
import io.devsummit.android.Controllers.UserFeedController;
import io.devsummit.android.Controllers.UserTicketController;
import io.devsummit.android.Fragments.FeedFragment;
import io.devsummit.android.Fragments.TicketFragment;
import io.devsummit.android.Helpers.ExitAppHelper;
import io.devsummit.android.Helpers.UserAuthenticationHelper;
import io.devsummit.android.R;
import io.devsummit.android.ViewAdapters.MainViewPagerAdapter;
import io.realm.Realm;

public class MainActivity extends AppCompatActivity {
public static UserTicketController userTicketController;
public static UserFeedController userFeedController;
public static TicketFragment ticketFragment;
public static FeedFragment feedFragment;
private UserAuthenticationHelper authHelper;
private UserTicketController userTicketController;
private ProgressBar mProgressView;
private BottomNavigationView navigation;
private ViewPager viewPager;
MenuItem prevMenuItem;

@Override
public void onBackPressed() {
ExitAppHelper.exitTheApp(this);
}

private FrameLayout mContainer;
public static MainActivity mMainActivity;

private BottomNavigationView.OnNavigationItemSelectedListener mOnNavigationItemSelectedListener
= new BottomNavigationView.OnNavigationItemSelectedListener() {

@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();
viewPager.setCurrentItem(0);
break;
case R.id.tickets:
userTicketController.getUserTickets(token, MainActivity.this);
viewPager.setCurrentItem(1);
break;
}
if (frag != null) {
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
ft.add(R.id.container, frag, frag.getTag());
ft.commit();
}
return true;
}

};

private ViewPager.OnPageChangeListener mOnPageChangeListerner
= new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
if (prevMenuItem != null) {
prevMenuItem.setChecked(false);
}
else
{
navigation.getMenu().getItem(0).setChecked(false);
}
Log.d("page", "onPageSelected: "+position);
navigation.getMenu().getItem(position).setChecked(true);

}

@Override
public void onPageSelected(int position) {

}

@Override
public void onPageScrollStateChanged(int state) {

}

};

private void setupViewPager(ViewPager viewPager) {
MainViewPagerAdapter adapter = new MainViewPagerAdapter(getSupportFragmentManager());
feedFragment=new FeedFragment();
ticketFragment=new TicketFragment();
adapter.addFragment(feedFragment);
adapter.addFragment(ticketFragment);
viewPager.setAdapter(adapter);
}

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//Initializing viewPager
viewPager = (ViewPager) findViewById(R.id.viewpager);
mMainActivity = MainActivity.this;

authHelper = new UserAuthenticationHelper(this);
mProgressView = (ProgressBar) findViewById(R.id.main_activity_loader);
navigation = (BottomNavigationView) findViewById(R.id.navigation);
userTicketController = new UserTicketController(MainActivity.this);
mContainer = (FrameLayout) findViewById(R.id.container);
}
userFeedController = new UserFeedController(MainActivity.this);

@Override
protected void onResume() {
super.onResume();
setupViewPager(viewPager);
navigation.setOnNavigationItemSelectedListener(mOnNavigationItemSelectedListener);
userTicketController.getUserTickets(authHelper.getAccessToken(), MainActivity.this);
viewPager.addOnPageChangeListener(mOnPageChangeListerner);
userTicketController.getUserTickets(authHelper.getAccessToken());

Realm.init(getApplicationContext());
}

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

import android.content.Context;

import io.devsummit.android.Activities.MainActivity;
import io.devsummit.android.Helpers.InetConnectionHelper;
import io.devsummit.android.Helpers.RealmHelper;
import io.devsummit.android.Models.UserFeedModel;
import io.devsummit.android.Remote.APIService;
import io.devsummit.android.Remote.ApiUtils;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;

/**
* Created by wlisrausr on 04/10/17.
*/

public class UserFeedController {
private APIService mAPIService;
private MainActivity mMainActivity;
private UserFeedModel userFeedResponse;

public UserFeedController(MainActivity act) {
mMainActivity = act;
userFeedResponse = new UserFeedModel();
mAPIService = ApiUtils.getAPIService();
}

public void getUserFeed(String token, final Context context, final int page) {
if (mMainActivity != null) {
mMainActivity.showProgress(true);
}

if (InetConnectionHelper.isNetworkAvailable(context)) {
mAPIService.fetchUserFeed(token, page).enqueue(new Callback<UserFeedModel>() {
@Override
public void onResponse(Call<UserFeedModel> call, Response<UserFeedModel> response) {
userFeedResponse = response.body();

if (userFeedResponse.getMeta().getSuccess().booleanValue()) {
RealmHelper rh = new RealmHelper();

for (int i = 0; i < userFeedResponse.getData().size(); i++) {
rh.receiveData(userFeedResponse.getData().get(i));
}

if (page == 1) {
mMainActivity.feedFragment.attachAdapter();
}
}
}

@Override
public void onFailure(Call<UserFeedModel> call, Throwable t) {
}
});
}

mMainActivity.showProgress(false);
}
}
Original file line number Diff line number Diff line change
@@ -1,12 +1,6 @@
package io.devsummit.android.Controllers;

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

import io.devsummit.android.R;
import io.devsummit.android.Activities.MainActivity;
import io.devsummit.android.Fragments.TicketFragment;
import io.devsummit.android.Models.UserTicketModel;
import io.devsummit.android.Remote.APIService;
import io.devsummit.android.Remote.ApiUtils;
Expand All @@ -30,17 +24,13 @@ public UserTicketController(MainActivity act) {
mAPIService = ApiUtils.getAPIService();
}

public void getUserTickets(String token, final Context context) {
public UserTicketModel getUserTickets(String token) {
mMainActivity.showProgress(true);
mAPIService.fetchUserTicket(token).enqueue(new Callback<UserTicketModel>() {
@Override
public void onResponse(Call<UserTicketModel> call, Response<UserTicketModel> response) {
UserTickets = response.body();
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();
mMainActivity.ticketFragment.attachItemToAdapter(UserTickets.getData());
mMainActivity.showProgress(false);
}

Expand All @@ -50,6 +40,8 @@ public void onFailure(Call<UserTicketModel> call, Throwable t) {
mMainActivity.showProgress(false);
}
});

return UserTickets;
}

}
Loading