
com.github.jobs.ui.dialog.SOUserDialog Maven / Gradle / Ivy
package com.github.jobs.ui.dialog;
import android.content.Intent;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.os.Handler;
import android.text.util.Linkify;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
import com.github.jobs.R;
import com.github.jobs.bean.SOUser;
import com.github.jobs.ui.activity.SOUserPickerActivity;
import com.github.jobs.utils.WebsiteHelper;
import com.telly.wasp.BitmapHelper;
import com.telly.wasp.BitmapObserver;
import com.telly.wasp.BitmapUtils;
/**
* @author cristian
* @version 1.0
*/
public class SOUserDialog extends TrackDialog implements View.OnClickListener {
public static final int REQUEST_CODE = 12;
private String mTitle;
private SOUser mSoUser;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mSoUser = (SOUser) getIntent().getParcelableExtra(SOUserPickerActivity.EXTRA_USER);
if (mSoUser == null) {
Toast.makeText(this, R.string.invalid_so_user, Toast.LENGTH_LONG).show();
finish();
return;
}
setContentView(R.layout.so_user_dialog);
String websiteUrl = mSoUser.getWebsiteUrl();
findViewById(R.id.btn_choose_user).setOnClickListener(this);
findViewById(R.id.btn_choose_user_and_website).setOnClickListener(this);
mTitle = mSoUser.getDisplayName();
TextView reputation = (TextView) findViewById(R.id.lbl_reputation);
reputation.setText(getString(R.string.reputation, mSoUser.getReputation()));
TextView website = (TextView) findViewById(R.id.lbl_website);
if (websiteUrl == null) {
website.setVisibility(View.GONE);
findViewById(R.id.btn_choose_user_and_website).setVisibility(View.GONE);
} else {
website.setText(getString(R.string.website, websiteUrl));
}
TextView goldBadge = (TextView) findViewById(R.id.lbl_gold);
TextView silverBadge = (TextView) findViewById(R.id.lbl_silver);
TextView bronzeBadge = (TextView) findViewById(R.id.lbl_bronze);
int gold = mSoUser.getBadgeCount().getGold();
int silver = mSoUser.getBadgeCount().getSilver();
int bronze = mSoUser.getBadgeCount().getBronze();
if (gold > 0) {
goldBadge.setVisibility(View.VISIBLE);
goldBadge.setText(String.valueOf(gold));
}
if (silver > 0) {
silverBadge.setVisibility(View.VISIBLE);
silverBadge.setText(String.valueOf(silver));
}
if (bronze > 0) {
bronzeBadge.setVisibility(View.VISIBLE);
bronzeBadge.setText(String.valueOf(bronze));
}
Linkify.addLinks(website, Linkify.WEB_URLS);
ImageView userAvatar = (ImageView) findViewById(R.id.img_user_avatar);
BitmapHelper bitmapHelper = BitmapHelper.getInstance();
Bitmap avatar = bitmapHelper.getBitmap(mSoUser.getProfileImage());
if (BitmapUtils.isBitmapValid(avatar)) {
userAvatar.setImageBitmap(avatar);
} else {
BitmapObserver observer = new BitmapObserver(userAvatar, mSoUser.getProfileImage(), new Handler());
bitmapHelper.registerBitmapObserver(this, observer);
}
userAvatar.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
WebsiteHelper.launchWebsite(SOUserDialog.this, mSoUser.getLink());
}
});
}
@Override
protected void onTitleChanged(CharSequence title, int color) {
super.onTitleChanged(this.mTitle, color);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.btn_choose_user:
mSoUser.setWebsiteUrl(null);
sendResultBack();
break;
case R.id.btn_choose_user_and_website:
sendResultBack();
break;
}
}
private void sendResultBack() {
Intent data = new Intent();
data.putExtra(SOUserPickerActivity.EXTRA_USER, mSoUser);
setResult(RESULT_OK, data);
finish();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy