diff --git a/app/build.gradle b/app/build.gradle index fc7454de..512abe97 100755 --- a/app/build.gradle +++ b/app/build.gradle @@ -21,15 +21,20 @@ android { dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) implementation "com.android.support:appcompat-v7:26.1.0" + implementation "com.android.support:design:27.1.0" implementation "com.google.firebase:firebase-auth:$rootProject.firebaseVersion" implementation "com.google.firebase:firebase-database:$rootProject.firebaseVersion" implementation "com.google.firebase:firebase-messaging:$rootProject.firebaseVersion" implementation "com.android.support.constraint:constraint-layout:$rootProject.constraintLayoutVersion" + implementation 'com.android.support.constraint:constraint-layout:1.1.0' testImplementation "junit:junit:$rootProject.junitVersion" + + implementation 'com.mikhaellopez:circularimageview:3.0.2' + implementation 'com.afollestad.material-dialogs:core:0.9.6.0' + androidTestImplementation 'com.android.support.test:runner:1.0.1' androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1' - implementation "com.android.support:appcompat-v7:$rootProject.supportLibVersion" implementation "com.android.support:cardview-v7:$rootProject.supportLibVersion" implementation "com.android.support:design:$rootProject.supportLibVersion" diff --git a/app/src/main/java/com/developervishalsehgal/udacityscholarsapp/ui/avatars/avatar_selection.java b/app/src/main/java/com/developervishalsehgal/udacityscholarsapp/ui/avatars/avatar_selection.java new file mode 100644 index 00000000..f34d21f2 --- /dev/null +++ b/app/src/main/java/com/developervishalsehgal/udacityscholarsapp/ui/avatars/avatar_selection.java @@ -0,0 +1,100 @@ +package com.developervishalsehgal.udacityscholarsapp.ui.avatars; + +import android.content.DialogInterface; +import android.content.Intent; +import android.support.annotation.NonNull; +import android.support.v7.app.AppCompatActivity; +import android.os.Bundle; +import android.view.View; +import android.widget.ImageView; + +import com.afollestad.materialdialogs.DialogAction; +import com.afollestad.materialdialogs.MaterialDialog; +import com.developervishalsehgal.udacityscholarsapp.R; + + +public class avatar_selection extends AppCompatActivity implements View.OnClickListener { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_avatar_selection); + + } + + @Override + public void onClick(View view) { + + final Intent intent = new Intent(this,com.developervishalsehgal.udacityscholarsapp.ui.profile.UserProfileActivity.class); + + int id = view.getId(); + if (id == R.id.pic1) { + + new MaterialDialog.Builder(this) + .title("Are you sure?") + .content("Selected image would be chosen as your new profile picture") + .positiveText("YES") + .negativeText("NO") + .onPositive(new MaterialDialog.SingleButtonCallback() { + + @Override + public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) { + intent.putExtra("profile_path",R.drawable.avatar_1); + startActivity(intent); + } + }) + .show(); + + } else if (id == R.id.pic2) { + new MaterialDialog.Builder(this) + .title("Are you sure?") + .content("Selected image would be chosen as your new profile picture") + .positiveText("YES") + .negativeText("NO") + .onPositive(new MaterialDialog.SingleButtonCallback() { + + @Override + public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) { + intent.putExtra("profile_path",R.drawable.avatar_2); + startActivity(intent); + } + }) + .show(); + + } else if (id == R.id.pic3) { + + new MaterialDialog.Builder(this) + .title("Are you sure?") + .content("Selected image would be chosen as your new profile picture") + .positiveText("YES") + .negativeText("NO") + .onPositive(new MaterialDialog.SingleButtonCallback() { + + @Override + public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) { + intent.putExtra("profile_path",R.drawable.avatar_3); + startActivity(intent); + } + }) + .show(); + + } else if (id == R.id.pic4) { + + new MaterialDialog.Builder(this) + .title("Are you sure?") + .content("Selected image would be chosen as your new profile picture") + .positiveText("YES") + .negativeText("NO") + .onPositive(new MaterialDialog.SingleButtonCallback() { + + @Override + public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) { + intent.putExtra("profile_path",R.drawable.avatar_4); + startActivity(intent); + } + }) + .show(); + + } + } +} diff --git a/app/src/main/java/com/developervishalsehgal/udacityscholarsapp/ui/coverimage/cover_picture_selection.java b/app/src/main/java/com/developervishalsehgal/udacityscholarsapp/ui/coverimage/cover_picture_selection.java new file mode 100644 index 00000000..90cb0c21 --- /dev/null +++ b/app/src/main/java/com/developervishalsehgal/udacityscholarsapp/ui/coverimage/cover_picture_selection.java @@ -0,0 +1,96 @@ +package com.developervishalsehgal.udacityscholarsapp.ui.coverimage; + +import android.content.Intent; +import android.support.annotation.NonNull; +import android.support.v7.app.AppCompatActivity; +import android.os.Bundle; +import android.view.View; + +import com.afollestad.materialdialogs.DialogAction; +import com.afollestad.materialdialogs.MaterialDialog; +import com.developervishalsehgal.udacityscholarsapp.R; + +public class cover_picture_selection extends AppCompatActivity implements View.OnClickListener{ + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_cover_picture_selection); + } + + @Override + public void onClick(View view) { + + final Intent intent = new Intent(this,com.developervishalsehgal.udacityscholarsapp.ui.profile.UserProfileActivity.class); + + int id = view.getId(); + if (id == R.id.pic1) { + + new MaterialDialog.Builder(this) + .title("Are you sure?") + .content("Selected image would be chosen as your new profile picture") + .positiveText("YES") + .negativeText("NO") + .onPositive(new MaterialDialog.SingleButtonCallback() { + + @Override + public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) { + intent.putExtra("cover_path",R.drawable.avatar_1); + startActivity(intent); + } + }) + .show(); + + } else if (id == R.id.pic2) { + new MaterialDialog.Builder(this) + .title("Are you sure?") + .content("Selected image would be chosen as your new profile picture") + .positiveText("YES") + .negativeText("NO") + .onPositive(new MaterialDialog.SingleButtonCallback() { + + @Override + public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) { + intent.putExtra("cover_path",R.drawable.avatar_2); + startActivity(intent); + } + }) + .show(); + + } else if (id == R.id.pic3) { + + new MaterialDialog.Builder(this) + .title("Are you sure?") + .content("Selected image would be chosen as your new profile picture") + .positiveText("YES") + .negativeText("NO") + .onPositive(new MaterialDialog.SingleButtonCallback() { + + @Override + public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) { + intent.putExtra("cover_path",R.drawable.avatar_3); + startActivity(intent); + } + }) + .show(); + + } else if (id == R.id.pic4) { + + new MaterialDialog.Builder(this) + .title("Are you sure?") + .content("Selected image would be chosen as your new profile picture") + .positiveText("YES") + .negativeText("NO") + .onPositive(new MaterialDialog.SingleButtonCallback() { + + @Override + public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) { + intent.putExtra("cover_path",R.drawable.avatar_4); + startActivity(intent); + } + }) + .show(); + + } + } +} diff --git a/app/src/main/java/com/developervishalsehgal/udacityscholarsapp/ui/profile/UserProfileActivity.java b/app/src/main/java/com/developervishalsehgal/udacityscholarsapp/ui/profile/UserProfileActivity.java index 78dd52bb..9f42e6f5 100644 --- a/app/src/main/java/com/developervishalsehgal/udacityscholarsapp/ui/profile/UserProfileActivity.java +++ b/app/src/main/java/com/developervishalsehgal/udacityscholarsapp/ui/profile/UserProfileActivity.java @@ -1,19 +1,49 @@ package com.developervishalsehgal.udacityscholarsapp.ui.profile; +import android.content.Intent; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; +import android.view.View; +import android.widget.ImageView; +import android.widget.Spinner; import com.developervishalsehgal.udacityscholarsapp.R; + /** * Profile activity for the app. */ -public class UserProfileActivity extends AppCompatActivity implements ProfileContract.View { +public class UserProfileActivity extends AppCompatActivity implements ProfileContract.View, View.OnClickListener { + + private ImageView profile_picture; + private ImageView cover_picture; + private Spinner track; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_user_profile); + + profile_picture = findViewById(R.id.profile_picture); + cover_picture = findViewById(R.id.header_cover_image); + track = findViewById(R.id.spinner); + + Intent sourceIntent = getIntent(); + + if (sourceIntent != null) { + Bundle params = sourceIntent.getExtras(); + + if (params != null ) { + if (params.containsKey("profile_path")) { + profile_picture.setImageResource(params.getInt("profile_path")); + } + if (params.containsKey("cover_path")) { + profile_picture.setImageResource(params.getInt("cover_path")); + } + } + + } + track.setEnabled(false); } @Override @@ -50,4 +80,23 @@ public void showLoading() { public void hideLoading() { } + + @Override + public void onClick(View view) { + + int id = view.getId(); + + if (id == R.id.profile_picture) { + + Intent intent = new Intent(this,com.developervishalsehgal.udacityscholarsapp.ui.avatars.avatar_selection.class); + startActivity(intent); + + } else if (id == R.id.header_cover_image) { + + Intent intent = new Intent(this,com.developervishalsehgal.udacityscholarsapp.ui.coverimage.cover_picture_selection.class); + startActivity(intent); + } else if (id == R.id.submit_details) { + // TODO implement this function to save the changes made to the details + } + } } diff --git a/app/src/main/res/drawable-hdpi/avatar_1.png b/app/src/main/res/drawable-hdpi/avatar_1.png new file mode 100644 index 00000000..4f07c2d3 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/avatar_1.png differ diff --git a/app/src/main/res/drawable-hdpi/avatar_2.png b/app/src/main/res/drawable-hdpi/avatar_2.png new file mode 100644 index 00000000..a1dd6719 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/avatar_2.png differ diff --git a/app/src/main/res/drawable-hdpi/avatar_3.png b/app/src/main/res/drawable-hdpi/avatar_3.png new file mode 100644 index 00000000..4500b5d8 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/avatar_3.png differ diff --git a/app/src/main/res/drawable-hdpi/avatar_4.png b/app/src/main/res/drawable-hdpi/avatar_4.png new file mode 100644 index 00000000..3840f9e5 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/avatar_4.png differ diff --git a/app/src/main/res/drawable-hdpi/desert.png b/app/src/main/res/drawable-hdpi/desert.png new file mode 100644 index 00000000..86a7ba18 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/desert.png differ diff --git a/app/src/main/res/drawable-hdpi/stars.png b/app/src/main/res/drawable-hdpi/stars.png new file mode 100644 index 00000000..eb7a7b1d Binary files /dev/null and b/app/src/main/res/drawable-hdpi/stars.png differ diff --git a/app/src/main/res/drawable-mdpi/avatar_1.png b/app/src/main/res/drawable-mdpi/avatar_1.png new file mode 100644 index 00000000..9a0735fd Binary files /dev/null and b/app/src/main/res/drawable-mdpi/avatar_1.png differ diff --git a/app/src/main/res/drawable-mdpi/avatar_2.png b/app/src/main/res/drawable-mdpi/avatar_2.png new file mode 100644 index 00000000..99ff5f53 Binary files /dev/null and b/app/src/main/res/drawable-mdpi/avatar_2.png differ diff --git a/app/src/main/res/drawable-mdpi/avatar_3.png b/app/src/main/res/drawable-mdpi/avatar_3.png new file mode 100644 index 00000000..34c28d29 Binary files /dev/null and b/app/src/main/res/drawable-mdpi/avatar_3.png differ diff --git a/app/src/main/res/drawable-mdpi/avatar_4.png b/app/src/main/res/drawable-mdpi/avatar_4.png new file mode 100644 index 00000000..309af877 Binary files /dev/null and b/app/src/main/res/drawable-mdpi/avatar_4.png differ diff --git a/app/src/main/res/drawable-mdpi/desert.png b/app/src/main/res/drawable-mdpi/desert.png new file mode 100644 index 00000000..162fd742 Binary files /dev/null and b/app/src/main/res/drawable-mdpi/desert.png differ diff --git a/app/src/main/res/drawable-mdpi/stars.png b/app/src/main/res/drawable-mdpi/stars.png new file mode 100644 index 00000000..841c66de Binary files /dev/null and b/app/src/main/res/drawable-mdpi/stars.png differ diff --git a/app/src/main/res/drawable-xhdpi/avatar_1.png b/app/src/main/res/drawable-xhdpi/avatar_1.png new file mode 100644 index 00000000..4275f1ac Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/avatar_1.png differ diff --git a/app/src/main/res/drawable-xhdpi/avatar_2.png b/app/src/main/res/drawable-xhdpi/avatar_2.png new file mode 100644 index 00000000..6ca6cf0c Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/avatar_2.png differ diff --git a/app/src/main/res/drawable-xhdpi/avatar_3.png b/app/src/main/res/drawable-xhdpi/avatar_3.png new file mode 100644 index 00000000..93a6edbe Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/avatar_3.png differ diff --git a/app/src/main/res/drawable-xhdpi/avatar_4.png b/app/src/main/res/drawable-xhdpi/avatar_4.png new file mode 100644 index 00000000..202f056c Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/avatar_4.png differ diff --git a/app/src/main/res/drawable-xhdpi/desert.png b/app/src/main/res/drawable-xhdpi/desert.png new file mode 100644 index 00000000..9e9bfed6 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/desert.png differ diff --git a/app/src/main/res/drawable-xhdpi/stars.png b/app/src/main/res/drawable-xhdpi/stars.png new file mode 100644 index 00000000..bfcc85af Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/stars.png differ diff --git a/app/src/main/res/layout/activity_avatar_selection.xml b/app/src/main/res/layout/activity_avatar_selection.xml new file mode 100644 index 00000000..20c49778 --- /dev/null +++ b/app/src/main/res/layout/activity_avatar_selection.xml @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/layout/activity_cover_picture_selection.xml b/app/src/main/res/layout/activity_cover_picture_selection.xml new file mode 100644 index 00000000..8f66c792 --- /dev/null +++ b/app/src/main/res/layout/activity_cover_picture_selection.xml @@ -0,0 +1,60 @@ + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/layout/activity_user_profile.xml b/app/src/main/res/layout/activity_user_profile.xml index 9ab6ff07..8e058085 100644 --- a/app/src/main/res/layout/activity_user_profile.xml +++ b/app/src/main/res/layout/activity_user_profile.xml @@ -1,5 +1,11 @@ - + + - \ No newline at end of file + + + + + + + + + + + + + + +