From 3c9e7730bc1378f1f84bdf630d89a6cb67207169 Mon Sep 17 00:00:00 2001 From: sayaMahi Date: Mon, 14 May 2018 23:52:26 +0530 Subject: [PATCH 1/3] Changes for Avatar Choose Dialog --- app/src/main/AndroidManifest.xml | 2 + .../ui/home/HomeActivity.java | 63 +++++++++++++++++++ .../ui/signin/AvatarGridActivity.java | 34 ++++++++++ .../ui/signin/ImageAdapter.java | 53 ++++++++++++++++ app/src/main/res/drawable/ic_asset_0.xml | 23 +++++++ app/src/main/res/drawable/ic_asset_1.xml | 24 +++++++ app/src/main/res/drawable/ic_asset_2.xml | 27 ++++++++ app/src/main/res/drawable/ic_asset_3.xml | 19 ++++++ app/src/main/res/drawable/ic_asset_4.xml | 26 ++++++++ app/src/main/res/drawable/ic_asset_5.xml | 18 ++++++ .../main/res/layout/activity_avatar_grid.xml | 13 ++++ 11 files changed, 302 insertions(+) create mode 100644 app/src/main/java/com/developervishalsehgal/udacityscholarsapp/ui/signin/AvatarGridActivity.java create mode 100644 app/src/main/java/com/developervishalsehgal/udacityscholarsapp/ui/signin/ImageAdapter.java create mode 100644 app/src/main/res/drawable/ic_asset_0.xml create mode 100644 app/src/main/res/drawable/ic_asset_1.xml create mode 100644 app/src/main/res/drawable/ic_asset_2.xml create mode 100644 app/src/main/res/drawable/ic_asset_3.xml create mode 100644 app/src/main/res/drawable/ic_asset_4.xml create mode 100644 app/src/main/res/drawable/ic_asset_5.xml create mode 100644 app/src/main/res/layout/activity_avatar_grid.xml diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 3181ffd9..5ba9fc16 100755 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -25,6 +25,8 @@ + diff --git a/app/src/main/java/com/developervishalsehgal/udacityscholarsapp/ui/home/HomeActivity.java b/app/src/main/java/com/developervishalsehgal/udacityscholarsapp/ui/home/HomeActivity.java index a5f7c02f..58c56206 100644 --- a/app/src/main/java/com/developervishalsehgal/udacityscholarsapp/ui/home/HomeActivity.java +++ b/app/src/main/java/com/developervishalsehgal/udacityscholarsapp/ui/home/HomeActivity.java @@ -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; @@ -12,11 +13,13 @@ 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; @@ -24,6 +27,7 @@ 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; @@ -38,6 +42,8 @@ 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; @@ -45,6 +51,8 @@ public class HomeActivity extends AppCompatActivity implements HomeContract.View // UI Elements private DrawerLayout mDrawerLayout; private RecyclerView mQuizRecyclerView; + private NavigationView mNavigationView; + private ImageView mImageView; //Reference of the quiz filter list layout private RadioGroup mHomeQuizListFilterRadioGroup; ////////////// @@ -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); diff --git a/app/src/main/java/com/developervishalsehgal/udacityscholarsapp/ui/signin/AvatarGridActivity.java b/app/src/main/java/com/developervishalsehgal/udacityscholarsapp/ui/signin/AvatarGridActivity.java new file mode 100644 index 00000000..5e6e7ac0 --- /dev/null +++ b/app/src/main/java/com/developervishalsehgal/udacityscholarsapp/ui/signin/AvatarGridActivity.java @@ -0,0 +1,34 @@ +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.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(); + } + }); + + } + +} diff --git a/app/src/main/java/com/developervishalsehgal/udacityscholarsapp/ui/signin/ImageAdapter.java b/app/src/main/java/com/developervishalsehgal/udacityscholarsapp/ui/signin/ImageAdapter.java new file mode 100644 index 00000000..225861c9 --- /dev/null +++ b/app/src/main/java/com/developervishalsehgal/udacityscholarsapp/ui/signin/ImageAdapter.java @@ -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 + }; +} diff --git a/app/src/main/res/drawable/ic_asset_0.xml b/app/src/main/res/drawable/ic_asset_0.xml new file mode 100644 index 00000000..e44bc9e2 --- /dev/null +++ b/app/src/main/res/drawable/ic_asset_0.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/ic_asset_1.xml b/app/src/main/res/drawable/ic_asset_1.xml new file mode 100644 index 00000000..7c724365 --- /dev/null +++ b/app/src/main/res/drawable/ic_asset_1.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/ic_asset_2.xml b/app/src/main/res/drawable/ic_asset_2.xml new file mode 100644 index 00000000..0424ce92 --- /dev/null +++ b/app/src/main/res/drawable/ic_asset_2.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/ic_asset_3.xml b/app/src/main/res/drawable/ic_asset_3.xml new file mode 100644 index 00000000..ff5acf9b --- /dev/null +++ b/app/src/main/res/drawable/ic_asset_3.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/ic_asset_4.xml b/app/src/main/res/drawable/ic_asset_4.xml new file mode 100644 index 00000000..e6caca13 --- /dev/null +++ b/app/src/main/res/drawable/ic_asset_4.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/ic_asset_5.xml b/app/src/main/res/drawable/ic_asset_5.xml new file mode 100644 index 00000000..096d4f97 --- /dev/null +++ b/app/src/main/res/drawable/ic_asset_5.xml @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/layout/activity_avatar_grid.xml b/app/src/main/res/layout/activity_avatar_grid.xml new file mode 100644 index 00000000..db3b6f98 --- /dev/null +++ b/app/src/main/res/layout/activity_avatar_grid.xml @@ -0,0 +1,13 @@ + + \ No newline at end of file From 8a8925d3e7038955da98f29033f2559db1e71eb3 Mon Sep 17 00:00:00 2001 From: sayaMahi Date: Tue, 15 May 2018 00:32:28 +0530 Subject: [PATCH 2/3] fixes and changes for AvatarDlg --- app/src/main/AndroidManifest.xml | 2 +- .../udacityscholarsapp/ui/signin/AvatarGridActivity.java | 5 ++++- app/src/main/res/layout/activity_avatar_grid.xml | 1 + app/src/main/res/values/styles.xml | 8 ++++++++ 4 files changed, 14 insertions(+), 2 deletions(-) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 5ba9fc16..f3aaab95 100755 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -26,7 +26,7 @@ + android:theme="@style/AvatarDialog"/> diff --git a/app/src/main/java/com/developervishalsehgal/udacityscholarsapp/ui/signin/AvatarGridActivity.java b/app/src/main/java/com/developervishalsehgal/udacityscholarsapp/ui/signin/AvatarGridActivity.java index 5e6e7ac0..6c7676c8 100644 --- a/app/src/main/java/com/developervishalsehgal/udacityscholarsapp/ui/signin/AvatarGridActivity.java +++ b/app/src/main/java/com/developervishalsehgal/udacityscholarsapp/ui/signin/AvatarGridActivity.java @@ -5,6 +5,8 @@ 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; @@ -14,8 +16,9 @@ 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)); diff --git a/app/src/main/res/layout/activity_avatar_grid.xml b/app/src/main/res/layout/activity_avatar_grid.xml index db3b6f98..357e974f 100644 --- a/app/src/main/res/layout/activity_avatar_grid.xml +++ b/app/src/main/res/layout/activity_avatar_grid.xml @@ -9,5 +9,6 @@ android:horizontalSpacing="10dp" android:stretchMode="columnWidth" android:gravity="center" + android:background="@color/colorPrimaryDark" /> \ No newline at end of file diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index 84a90127..559eb4a4 100755 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -7,6 +7,14 @@ @color/colorPrimaryDark @color/colorAccent + +