Skip to content

Commit

Permalink
feat: Add links editing option
Browse files Browse the repository at this point in the history
iamareebjamal committed Apr 11, 2017
1 parent b4d43f2 commit 93279e2
Showing 3 changed files with 167 additions and 10 deletions.
Original file line number Diff line number Diff line change
@@ -28,6 +28,7 @@
import com.squareup.picasso.Picasso;

import java.io.File;
import java.util.HashMap;
import java.util.Map;

import amu.roboclub.R;
@@ -64,6 +65,11 @@ public class ProfileEditorFragment extends BottomSheetDialogFragment {
@BindView(R.id.about) TextInputEditText about;
@BindView(R.id.cv_link) TextInputEditText cvLink;
@BindView(R.id.interests) TextInputEditText interests;
@BindView(R.id.phone) TextInputEditText phone;
@BindView(R.id.email) TextInputEditText email;
@BindView(R.id.facebook) TextInputEditText facebook;
@BindView(R.id.gplus) TextInputEditText gplus;
@BindView(R.id.linkedin) TextInputEditText linkedin;

private View root;
private String filePath;
@@ -118,16 +124,30 @@ private void save() {
String cvString = cvLink.getText().toString();
String positionString = position.getText().toString();
String interestString = interests.getText().toString();
String phoneNo = phone.getText().toString();
String emailAdd = email.getText().toString();
String facebookId = facebook.getText().toString();
String gplusId = gplus.getText().toString();
String linkedinId = linkedin.getText().toString();

ProfileInfo profileInfo = profile.profile_info;
if(profileInfo == null)
profileInfo = new ProfileInfo(); // Hack to avoid NPE

Map<String, String> links = profile.links;
if(links == null)
links = new HashMap<>(); // Hack to avoid NPE

UpdateMapBuilder updateMapBuilder = new UpdateMapBuilder()
.addNonNullNonEqualString("name", nameString, profile.name)
.addNonNullNonEqualString("profile_info/batch", batchString, profileInfo.batch)
.addNonNullNonEqualString("profile_info/about", aboutString, profileInfo.about)
.addNonNullNonEqualString("profile_info/cv", cvString, profileInfo.cv)
.addNonNullNonEqualString("links/mobile", phoneNo, links.get("mobile"))
.addNonNullNonEqualString("links/email", emailAdd, links.get("email"))
.addNonNullNonEqualString("links/facebook", facebookId, links.get("facebook"))
.addNonNullNonEqualString("links/g-plus", gplusId, links.get("g-plus"))
.addNonNullNonEqualString("links/linkdedin", linkedinId, links.get("linkedin"))
.addNonNullNonEmptyList("profile_info/interests", interestString, profileInfo.interests)
.addNonEqualString("thumbnail", photoString, profile.thumbnail);

@@ -147,7 +167,8 @@ private void save() {
}

private void setupEditTexts() {
setEditTextDisabled(about, photoLink, position, batch, about, cvLink, interests);
setEditTextDisabled(about, photoLink, position, batch, about, cvLink, interests, phone,
email, gplus, facebook, linkedin);
}

private void setEditTextDisabled(TextInputEditText... editTexts) {
@@ -210,21 +231,33 @@ private void showProfile() {

ProfileInfo info = profile.profile_info;
if(info != null) {
if(info.batch != null)
batch.setText(info.batch);
loadText(info.batch, batch);

if(info.cv != null)
cvLink.setText(info.cv);
loadText(info.cv, cvLink);

if(info.about != null)
about.setText(info.about);
loadText(info.about, about);

if (info.interests != null) {
interests.setText(StringUtils.join(info.interests, "\n"));
}
if (info.interests != null)
loadText(StringUtils.join(info.interests, "\n"), interests);
}

Map<String, String> links = profile.links;
if(links != null && !links.isEmpty()) {
loadText(links.get("mobile"), phone);
loadText(links.get("email"), email);
loadText(links.get("facebook"), facebook);
loadText(links.get("g-plus"), gplus);
loadText(links.get("linkedin"), linkedin);
}
}

private void loadText(String text, TextInputEditText editText) {
if(text == null)
return;

editText.setText(text);
}

private void imageLoaded() {
if(filePath == null)
return;
120 changes: 120 additions & 0 deletions app/src/main/res/layout/bottomsheet_profile_editor.xml
Original file line number Diff line number Diff line change
@@ -244,6 +244,126 @@

</LinearLayout>

<LinearLayout
style="@style/Padded"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">

<ImageView
style="@style/GrayIcon"
android:contentDescription="@null"
app:srcCompat="@drawable/ic_phone" />

<android.support.design.widget.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">

<android.support.design.widget.TextInputEditText
android:id="@+id/phone"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/contact_no" />
</android.support.design.widget.TextInputLayout>

</LinearLayout>

<LinearLayout
style="@style/Padded"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">

<ImageView
style="@style/GrayIcon"
android:contentDescription="@null"
app:srcCompat="@drawable/ic_email" />

<android.support.design.widget.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">

<android.support.design.widget.TextInputEditText
android:id="@+id/email"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/email_hint" />
</android.support.design.widget.TextInputLayout>

</LinearLayout>

<LinearLayout
style="@style/Padded"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">

<ImageView
style="@style/GrayIcon"
android:contentDescription="@null"
app:srcCompat="@drawable/ic_facebook" />

<android.support.design.widget.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">

<android.support.design.widget.TextInputEditText
android:id="@+id/facebook"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/facebook_id" />
</android.support.design.widget.TextInputLayout>

</LinearLayout>

<LinearLayout
style="@style/Padded"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">

<ImageView
style="@style/GrayIcon"
android:contentDescription="@null"
app:srcCompat="@drawable/ic_gplus" />

<android.support.design.widget.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">

<android.support.design.widget.TextInputEditText
android:id="@+id/gplus"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/google_plus_id" />
</android.support.design.widget.TextInputLayout>

</LinearLayout>

<LinearLayout
style="@style/Padded"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">

<ImageView
style="@style/GrayIcon"
android:contentDescription="@null"
app:srcCompat="@drawable/ic_linkedin" />

<android.support.design.widget.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">

<android.support.design.widget.TextInputEditText
android:id="@+id/linkedin"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/linkedin_id" />
</android.support.design.widget.TextInputLayout>

</LinearLayout>

</LinearLayout>

</android.support.v4.widget.NestedScrollView>
4 changes: 4 additions & 0 deletions app/src/main/res/values/strings.xml
Original file line number Diff line number Diff line change
@@ -127,4 +127,8 @@
<string name="post_key">Post Key</string>
<string name="editable">editable</string>
<string name="profile_update_failed">Profile Update Failed</string>
<string name="contact_no">Contact No</string>
<string name="facebook_id">Facebook ID</string>
<string name="google_plus_id">Google Plus ID</string>
<string name="linkedin_id">Linkedin ID</string>
</resources>

0 comments on commit 93279e2

Please sign in to comment.