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
2 changes: 2 additions & 0 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,8 @@
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".ui.signin.AvatarGridActivity"
android:theme="@style/AvatarDialog"/>
<activity android:name=".ui.home.HomeActivity">
<!--Adding this intent filter here to silence the warning ,this should be a part of home
activity or quiz details activity-->
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.developervishalsehgal.udacityscholarsapp.ui.home;

import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.support.annotation.Nullable;
Expand All @@ -12,18 +13,21 @@
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.Toolbar;
import android.util.Log;
import android.view.Gravity;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.Toast;

import com.developervishalsehgal.udacityscholarsapp.R;
import com.developervishalsehgal.udacityscholarsapp.data.models.Quiz;
import com.developervishalsehgal.udacityscholarsapp.ui.PresenterInjector;
import com.developervishalsehgal.udacityscholarsapp.ui.signin.AvatarGridActivity;

import java.util.List;

Expand All @@ -38,13 +42,17 @@ public class HomeActivity extends AppCompatActivity implements HomeContract.View
private static final int QUIZ_FILTER_VIEW_ANIMATION_SLIDE_UP_TRANSLATE_Y = -1000;
private static final int QUIZ_FILTER_VIEW_SLIDE_UP_DELAY_ON_CHECKED_CHANGED = 350;

static final int PICK_IMAGE_AVATAR = 131; // The request code

private QuizAdapter mQuizAdapter;

private HomeContract.Presenter mPresenter;

// UI Elements
private DrawerLayout mDrawerLayout;
private RecyclerView mQuizRecyclerView;
private NavigationView mNavigationView;
private ImageView mImageView;
//Reference of the quiz filter list layout
private RadioGroup mHomeQuizListFilterRadioGroup;
//////////////
Expand Down Expand Up @@ -83,8 +91,63 @@ private void initializeUI() {

initQuizFilter();
mDrawerLayout = findViewById(R.id.drawer_layout);

mNavigationView = (NavigationView) findViewById(R.id.nav_view);
View v = mNavigationView.getHeaderView(0);
mImageView = (ImageView) v.findViewById(R.id.usericon_nav);
mImageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent i = new Intent(HomeActivity.this, AvatarGridActivity.class);
startActivityForResult(i, PICK_IMAGE_AVATAR);
}
});


}

/**
* Dispatch incoming result to the correct fragment.
*
* @param requestCode
* @param resultCode
* @param data
*/
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == PICK_IMAGE_AVATAR) {
// Make sure the request was successful
if (resultCode == RESULT_OK) {
String position = data.getStringExtra("result");
setImageResource(Integer.parseInt(position));
}
}
}

void setImageResource( int id){
switch (id){
case 0:
mImageView.setImageResource(R.drawable.ic_asset_0);
break;
case 1:
mImageView.setImageResource(R.drawable.ic_asset_1);
break;
case 2:
mImageView.setImageResource(R.drawable.ic_asset_2);
break;
case 3:
mImageView.setImageResource(R.drawable.ic_asset_3);
break;
case 4:
mImageView.setImageResource(R.drawable.ic_asset_4);
break;
case 5:
mImageView.setImageResource(R.drawable.ic_asset_5);
break;
}
}


@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main_menu, menu);
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
package com.developervishalsehgal.udacityscholarsapp.ui.signin;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.widget.AdapterView;
import android.widget.GridView;

import com.developervishalsehgal.udacityscholarsapp.R;

public class AvatarGridActivity extends AppCompatActivity {

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

setContentView(R.layout.activity_avatar_grid);

GridView gridview = (GridView) findViewById(R.id.gridview);
gridview.setAdapter(new ImageAdapter(this));

gridview.setOnItemClickListener( new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View v,
int position, long id) {
Intent returnIntent = new Intent();
returnIntent.putExtra("result",position+"");
setResult(Activity.RESULT_OK,returnIntent);
finish();
}
});

}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
package com.developervishalsehgal.udacityscholarsapp.ui.signin;

import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;

import com.developervishalsehgal.udacityscholarsapp.R;

public class ImageAdapter extends BaseAdapter {
private Context mContext;

public ImageAdapter(Context c) {
mContext = c;
}

public int getCount() {
return mThumbIds.length;
}

public Object getItem(int position) {
return null;
}

public long getItemId(int position) {
return 0;
}

// create a new ImageView for each item referenced by the Adapter
public View getView(int position, View convertView, ViewGroup parent) {
ImageView imageView;
if (convertView == null) {
// if it's not recycled, initialize some attributes
imageView = new ImageView(mContext);
imageView.setLayoutParams(new ViewGroup.LayoutParams(250, 250));
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
imageView.setPadding(8, 8, 8, 8);
} else {
imageView = (ImageView) convertView;
}

imageView.setImageResource(mThumbIds[position]);
return imageView;
}

// references to our images
private Integer[] mThumbIds = {
R.drawable.ic_asset_0, R.drawable.ic_asset_1,
R.drawable.ic_asset_2, R.drawable.ic_asset_3,
R.drawable.ic_asset_4, R.drawable.ic_asset_5
};
}
23 changes: 23 additions & 0 deletions app/src/main/res/drawable/ic_asset_0.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
<vector android:height="24dp" android:viewportHeight="170"
android:viewportWidth="170" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#827977" android:pathData="M84.996,84.997m-34.396,77.73a85,85 62.652,1 1,68.793 -155.459a85,85 62.652,1 1,-68.793 155.459"/>
<path android:fillColor="#7b7270" android:pathData="M170,85A85,85 0,0 0,85 0V170A85,85 0,0 0,170 85Z"/>
<path android:fillColor="#29a69c" android:pathData="M170,85a85,85 0,1 0,-85 85A85,85 0,0 0,170 85Z"/>
<group>
<clip-path android:pathData="M170,85a85,85 0,1 0,-85 85A85,85 0,0 0,170 85Z M 0,0"/>
<path android:fillColor="#d9a78c" android:pathData="M97.45,133.73l-12.149994,29.490005l-12.75,-29.490005l0.0,-27.289993l24.899994,0.0l0.0,27.289993z"/>
<path android:fillColor="#f1f2f2" android:pathData="M72.55,122.7s-26.68,3.46,-30.18,7.1C39.33,133,33,163.34,31.54,170H85V154Z"/>
<path android:fillColor="#e6e7e8" android:pathData="M97.45,122.7s26.68,3.46,30.18,7.1c3,3.17,9.37,33.54,10.83,40.2H85V154Z"/>
<path android:fillColor="#eac0a7" android:pathData="M85,28.33c12.08,0,31.2,6.87,31.2,39.07,0,18.59,-6.06,30.77,-8.7,34.14,-2.43,3.1,-16.09,9.7,-22.5,9.7Z"/>
<path android:fillColor="#eac0a7" android:pathData="M122.21,75.08c.53,-5.15,-1.92,-9.71,-5.47,-10.2s-6.87,3.29,-7.41,8.43,1.92,9.71,5.48,10.2S121.68,80.22,122.21,75.08Z"/>
<path android:fillColor="#f2d7bc" android:pathData="M85,28.33c-12.09,0,-31.2,6.87,-31.2,39.07,0,18.59,6.06,30.77,8.7,34.14,2.43,3.1,16.09,9.7,22.5,9.7Z"/>
<path android:fillColor="#f2d7bc" android:pathData="M47.79,75.08c-.54,-5.15,1.92,-9.71,5.47,-10.2s6.87,3.29,7.41,8.43S58.75,83,55.19,83.51,48.32,80.22,47.79,75.08Z"/>
<path android:fillColor="#2f343a" android:pathData="M58,75.64h2.16s-1.31,-8.38,2.53,-11.09V59.13s-1.48,-.17,-1.48,-6.54S68.75,41.67,85,41.67V18.35s-32.11.68,-32.11,24V64.9a5.39,5.39,0,0,1,4,1C58.71,67.4,58,75.64,58,75.64Z"/>
<path android:fillColor="#2f343a" android:pathData="M112,75.64h-2.15s1.31,-8.38,-2.53,-11.09V59.13s1.48,-.17,1.48,-6.54S101.24,41.67,85,41.67V18.35s32.11,-.74,32.11,22.57v24a5.39,5.39,0,0,0,-4,1C111.29,67.4,112,75.64,112,75.64Z"/>
<path android:fillColor="#a0b2be" android:pathData="M85.0,153.99l-8.459999,-28.90001l-3.1200027,13.020004l11.580002,15.880005z"/>
<path android:fillColor="#fff" android:pathData="M72.2,119.71l4.4400024,5.7700043l-3.2200012,12.629997l-6.8199997,-9.199997l5.5999985,-9.200005z"/>
<path android:fillColor="#a0b2be" android:pathData="M85.0,153.99l7.6600037,-29.240005l3.9199982,13.360001l-11.580002,15.880005z"/>
<path android:fillColor="#fff" android:pathData="M97.8,119.71l-5.2400055,5.4300003l4.0200043,12.970001l7.419998,-9.199997l-6.199997,-9.200005z"/>
<path android:fillColor="#fff" android:pathData="M85,97.38c5.63,0,10.2,-1.86,10.2,-4.16H74.8C74.8,95.52,79.36,97.38,85,97.38Z"/>
</group>
</vector>
24 changes: 24 additions & 0 deletions app/src/main/res/drawable/ic_asset_1.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
<vector android:height="24dp" android:viewportHeight="170"
android:viewportWidth="170" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#f6a100" android:pathData="M170,85a85,85 0,1 0,-85 85A85,85 0,0 0,170 85Z"/>
<path android:fillColor="#ed9a00" android:pathData="M170,85A85,85 0,0 0,85 0V170A85,85 0,0 0,170 85Z"/>
<group>
<clip-path android:pathData="M84.996,85.007m-83.907,13.59a85,85 112.09,1 1,167.813 -27.18a85,85 112.09,1 1,-167.813 27.18 M 0,0"/>
<path android:fillColor="#d9a78c" android:pathData="M72.55,106.44h24.89v27.29h-24.89z"/>
<path android:fillColor="#c0d0d8" android:pathData="M69.53,122.7s-23.66,3.46,-27.16,7.1C39.33,133,33,163.34,31.54,170H85V124Z"/>
<path android:fillColor="#a7bdc8" android:pathData="M100.46,122.7s23.67,3.46,27.17,7.1c3,3.17,9.37,33.54,10.83,40.2H85V124Z"/>
<path android:fillColor="#14a89a" android:pathData="M83.39,128.5l-3.1500015,32.410004l4.760002,8.970001l4.760002,-8.970001l-3.1500015,-32.410004l-3.2200012,0.0z"/>
<path android:fillColor="#14a89a" android:pathData="M89.25,128.23,85,132.48l-4.25,-4.25L85,124Z"/>
<path android:fillColor="#eac0a7" android:pathData="M85,28.33c12.09,0,31.2,6.88,31.2,39.07,0,18.59,-6.06,30.77,-8.7,34.14,-2.43,3.1,-16.09,9.7,-22.5,9.7Z"/>
<path android:fillColor="#eac0a7" android:pathData="M122.21,75.08c.53,-5.15,-1.92,-9.71,-5.47,-10.2s-6.87,3.29,-7.41,8.43,1.92,9.71,5.48,10.2S121.68,80.22,122.21,75.08Z"/>
<path android:fillColor="#f2d7bc" android:pathData="M85,28.33c-12.09,0,-31.2,6.88,-31.2,39.07,0,18.59,6.06,30.77,8.7,34.14,2.43,3.1,16.09,9.7,22.5,9.7Z"/>
<path android:fillColor="#f2d7bc" android:pathData="M47.79,75.08c-.53,-5.15,1.92,-9.71,5.47,-10.2s6.87,3.29,7.41,8.43S58.75,83,55.19,83.51,48.32,80.22,47.79,75.08Z"/>
<path android:fillColor="#fff" android:pathData="M85.0,123.99l-12.639999,-5.079994l-3.1100006,3.159996l6.290001,13.939995l9.459999,-12.019997z"/>
<path android:fillColor="#fff" android:pathData="M85.0,123.99l12.639999,-5.079994l3.1100006,3.159996l-6.290001,13.939995l-9.459999,-12.019997z"/>
<path android:fillColor="#7f97a3" android:pathData="M57.62,156.14h15.77v3.48h-15.77z"/>
<path android:fillColor="#7f97a3" android:pathData="M96.62,156.14h15.77v3.48h-15.77z"/>
<path android:fillColor="#8b5f3c" android:pathData="M58,75.64h2.16s-1.31,-8.38,2.53,-11.09V59.14s-1.48,-.18,-1.48,-6.55S68.76,41.67,85,41.67V22.1S52.89,25.57,52.89,48.87v16a5.44,5.44,0,0,1,4,1C58.71,67.4,58,75.64,58,75.64Z"/>
<path android:fillColor="#8b5f3c" android:pathData="M111.74,75.64h-2.15s1.31,-8.38,-2.54,-11.09V59.14s1.49,-.18,1.49,-6.55,-7.6,-10.92,-23.84,-10.92V22.1s32.11,3.47,32.11,26.77v16a5.43,5.43,0,0,0,-4,1C111,67.4,111.74,75.64,111.74,75.64Z"/>
<path android:fillColor="#fff" android:pathData="M85,97.38c5.63,0,10.2,-1.87,10.2,-4.16H74.8C74.8,95.51,79.37,97.38,85,97.38Z"/>
</group>
</vector>
27 changes: 27 additions & 0 deletions app/src/main/res/drawable/ic_asset_2.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
<vector android:height="24dp" android:viewportHeight="170"
android:viewportWidth="170" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#827977" android:pathData="M170,85a85,85 0,1 0,-85 85A85,85 0,0 0,170 85Z"/>
<path android:fillColor="#7b7270" android:pathData="M170,85A85,85 0,0 0,85 0V170A85,85 0,0 0,170 85Z"/>
<group>
<clip-path android:pathData="M85.001,85.006m-32.364,78.598a85,85 66.225,1 1,64.727 -157.195a85,85 66.225,1 1,-64.727 157.195 M 0,0"/>
<path android:fillColor="#2a2d34" android:pathData="M100.47,122.7s23.66,3.46,27.16,7.1c3,3.17,9.37,33.54,10.83,40.2H85V126.88Z"/>
<path android:fillColor="#d9a78c" android:pathData="M72.55,107.0h24.89v27.29h-24.89z"/>
<path android:fillColor="#eac0a7" android:pathData="M85,28.33c12.09,0,31.2,6.88,31.2,39.07,0,18.59,-6.06,30.77,-8.7,34.14,-2.43,3.1,-16.09,9.7,-22.5,9.7Z"/>
<path android:fillColor="#eac0a7" android:pathData="M122.21,75.08c.54,-5.15,-1.92,-9.71,-5.47,-10.2s-6.87,3.29,-7.41,8.43,1.92,9.71,5.48,10.2S121.68,80.22,122.21,75.08Z"/>
<path android:fillColor="#f2d7bc" android:pathData="M85,28.33c-12.09,0,-31.2,6.88,-31.2,39.07,0,18.59,6.06,30.77,8.7,34.14,2.43,3.1,16.09,9.7,22.5,9.7Z"/>
<path android:fillColor="#f2d7bc" android:pathData="M47.79,75.08c-.53,-5.15,1.92,-9.71,5.47,-10.2s6.87,3.29,7.41,8.43S58.75,83,55.19,83.51,48.32,80.22,47.79,75.08Z"/>
<path android:fillColor="#690102" android:pathData="M68.72,35.07s-10.55,12.52,-6.51,24.2c.67,13.93,-.67,18.64,-5.17,22.46,1.13,-13.48,-.22,-18,-5.16,-16.4C49.86,54.78,54.22,26.34,68.72,35.07Z"/>
<path android:fillColor="#690102" android:pathData="M101.2,35.07s10.55,12.52,6.51,24.2c-.67,13.93.67,18.64,5.16,22.46,-1.12,-13.48.23,-18,5.17,-16.4C120.06,54.78,115.7,26.34,101.2,35.07Z"/>
<path android:fillColor="#2f343a" android:pathData="M69.53,122.7s-23.66,3.46,-27.16,7.1C39.33,133,33,163.34,31.54,170H85V126.88Z"/>
<path android:fillColor="#b9c7d0" android:pathData="M100.75,122.07l-15.75,3.2200012l-15.75,-3.2200012l15.75,47.93"/>
<path android:fillColor="#129e95" android:pathData="M83.69,131.76l-2.5800018,32.410004l3.8899994,5.830002l3.8799973,-5.830002l-2.5699997,-32.410004l-2.619995,0.0z"/>
<path android:fillColor="#3a404c" android:pathData="M73.64,142.76,61.12,124.18a61.28,61.28,0,0,1,11,-2.81L85,170,66.91,144.09Z"/>
<path android:fillColor="#3a404c" android:pathData="M96.36,142.76l12.53,-18.58a61.28,61.28,0,0,0,-11,-2.81L85,170l18.1,-25.91Z"/>
<path android:fillColor="#129e95" android:pathData="M89.25,129.68,85,134.06l-4.25,-4.38L85,125.3Z"/>
<path android:fillColor="#fff" android:pathData="M85.0,125.3l12.639999,-6.3899994l6.510002,3.7899933l-13.529999,10.809998l-5.6200027,-8.209991z"/>
<path android:fillColor="#fff" android:pathData="M85.0,125.3l-12.639999,-6.3899994l-6.5200043,3.7899933l13.300003,10.809998l5.8600006,-8.209991z"/>
<path android:fillColor="#690102" android:pathData="M114.82,40.56c-5,-20.43,-35.26,-36.48,-56.55,-4.41,-1.37,6.33,4.58,9.29,4.58,9.29s4,-9.29,22.19,-5c9.08,-2,17.92,-3.46,22,4.93S114.82,40.56,114.82,40.56Z"/>
<path android:fillColor="#690102" android:pathData="M102.88,97.45c-6.25,0,-10.72,-5.08,-17.88,-5.08s-11.63,5.08,-17.88,5.08c-6.85,0,-11.16,-11.81,-12.46,-16,1.76,11.91,5.81,19.71,7.84,22.3,2.43,3.1,16.09,9.71,22.5,9.71h0c6.41,0,20.07,-6.61,22.5,-9.71,2,-2.59,6.08,-10.39,7.84,-22.31C114.05,85.62,109.74,97.45,102.88,97.45Z"/>
<path android:fillColor="#fff" android:pathData="M85,103.12c2.11,0,3.82,-.88,3.82,-2H81.19C81.19,102.24,82.89,103.12,85,103.12Z"/>
</group>
</vector>
19 changes: 19 additions & 0 deletions app/src/main/res/drawable/ic_asset_3.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
<vector android:height="24dp" android:viewportHeight="170"
android:viewportWidth="170" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#b5332b" android:pathData="M170,85a85,85 0,1 0,-85 85A85,85 0,0 0,170 85Z"/>
<path android:fillColor="#a22d26" android:pathData="M170,85A85,85 0,0 0,85 0V170A85,85 0,0 0,170 85Z"/>
<group>
<clip-path android:pathData="M170,85a85,85 0,1 0,-85 85A85,85 0,0 0,170 85Z M 0,0"/>
<path android:fillColor="#d9a78c" android:pathData="M72.55,106.43h24.89v27.29h-24.89z"/>
<path android:fillColor="#c0d4df" android:pathData="M100.46,122.7s23.67,3.46,27.17,7.1c3,3.17,9.37,33.54,10.83,40.2H85V124Z"/>
<path android:fillColor="#eac0a7" android:pathData="M85,28.33c12.09,0,31.2,6.88,31.2,39.07,0,18.59,-6.06,30.77,-8.7,34.14,-2.43,3.1,-16.09,9.7,-22.5,9.7Z"/>
<path android:fillColor="#eac0a7" android:pathData="M122.21,75.08c.53,-5.15,-1.92,-9.71,-5.47,-10.2s-6.87,3.29,-7.41,8.43,1.92,9.71,5.48,10.2S121.68,80.22,122.21,75.08Z"/>
<path android:fillColor="#f2d7bc" android:pathData="M85,28.33c-12.09,0,-31.2,6.88,-31.2,39.07,0,18.59,6.06,30.77,8.7,34.14,2.43,3.1,16.09,9.7,22.5,9.7Z"/>
<path android:fillColor="#f2d7bc" android:pathData="M47.79,75.08c-.53,-5.15,1.92,-9.71,5.47,-10.2s6.87,3.29,7.41,8.43S58.75,83,55.19,83.51,48.32,80.22,47.79,75.08Z"/>
<path android:fillColor="#cfe1eb" android:pathData="M69.53,122.7s-23.66,3.46,-27.16,7.1C39.33,133,33,163.34,31.54,170H85V124Z"/>
<path android:fillColor="#fff" android:pathData="M85.0,123.99l-12.639999,-5.0899963l-3.1100006,3.159996l6.290001,13.949997l9.459999,-12.019997z"/>
<path android:fillColor="#fff" android:pathData="M85.0,123.99l12.639999,-5.0899963l3.1100006,3.159996l-6.290001,13.949997l-9.459999,-12.019997z"/>
<path android:fillColor="#8b5f3c" android:pathData="M116.88,65.64S127.11,19,84.79,19C42.24,19,52.92,64.36,52.92,64.36S58.73,61,58.73,75.91H59.8A168.35,168.35,0,0,0,62.49,57c15,0,28.19,-1.92,39.32,-11.13,6.31,0,7.17,7.87,7.17,13.89l-2.76,1.07s2.68,5.25,2.87,15.09H111S110.72,59.49,116.88,65.64Z"/>
<path android:fillColor="#fff" android:pathData="M85,99.1c5.63,0,10.2,-1.87,10.2,-4.16H74.8C74.8,97.23,79.37,99.1,85,99.1Z"/>
</group>
</vector>
Loading