package org.aisen.weibo.sina.ui.activity.profile;
import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.provider.Browser;
import android.view.View;
import org.aisen.android.common.utils.ViewUtils;
import org.aisen.android.network.task.TaskException;
import org.aisen.android.network.task.WorkTask;
import org.aisen.android.ui.activity.basic.BaseActivity;
import org.aisen.weibo.sina.R;
import org.aisen.weibo.sina.base.AppContext;
import org.aisen.weibo.sina.base.AppSettings;
import org.aisen.weibo.sina.sinasdk.SinaSDK;
import org.aisen.weibo.sina.sinasdk.bean.Token;
import org.aisen.weibo.sina.sinasdk.bean.WeiBoUser;
import org.aisen.weibo.sina.support.utils.AisenUtils;
import org.aisen.weibo.sina.support.utils.ThemeUtils;
import org.aisen.weibo.sina.ui.activity.base.AisenActivityHelper;
import org.aisen.weibo.sina.ui.activity.base.SinaCommonActivity;
import org.aisen.weibo.sina.ui.fragment.base.BizFragment;
import org.aisen.weibo.sina.ui.fragment.profile.ProfilePagerFragment;
/**
* 用户搜索界面
*
* @author wangdan
*
*/
public class UserProfileActivity extends BaseActivity implements AisenActivityHelper.EnableSwipeback {
public static void launch(Activity from, String screenName) {
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(String.format("org.aisen.weibo.sina.userinfo://@%s", screenName)));
intent.putExtra(Browser.EXTRA_APPLICATION_ID, from.getPackageName());
from.startActivity(intent);
}
public static void launch(Activity from, WeiBoUser user) {
Intent intent = new Intent(from, UserProfileActivity.class);
intent.putExtra("user", user);
from.startActivity(intent);
}
private String screenName;
private ProfilePagerFragment fragment;
@Override
protected void onCreate(Bundle savedInstanceState) {
AisenUtils.setStatusBar(this);
super.onCreate(savedInstanceState);
setContentView(R.layout.ui_profile_pager);
getSupportActionBar().setTitle("");
BizFragment.createBizFragment(this);
fragment = ProfilePagerFragment.newInstance();
getFragmentManager().beginTransaction().add(fragment, SinaCommonActivity.FRAGMENT_TAG).commit();
Uri data = getIntent().getData();
if (data != null) {
String d = data.toString();
int index = d.lastIndexOf("/");
String userName = d.substring(index + 1);
if (userName.indexOf("@") == 0)
userName = userName.substring(1);
screenName = userName;
reload(null);
} else {
finish();
return;
}
}
void reload(View v) {
BizFragment.createBizFragment(this).checkProfile(new BizFragment.CheckProfileCallback() {
@Override
public void onCheckProfileSuccess() {
new UserShowTask().execute();
}
@Override
public void onCheckProfileFaild() {
finish();
}
});
}
class UserShowTask extends WorkTask<Void, Void, WeiBoUser> {
@Override
protected void onPrepare() {
super.onPrepare();
ViewUtils.createProgressDialog(UserProfileActivity.this, getString(R.string.msg_load_profile), ThemeUtils.getThemeColor()).show();
}
@Override
public WeiBoUser workInBackground(Void... params) throws TaskException {
Token token = AppContext.getAccount().getAdvancedToken();
return SinaSDK.getInstance(token).userShow(null, screenName);
}
@Override
protected void onFailure(TaskException exception) {
super.onFailure(exception);
showMessage(exception.getMessage() + "");
finish();
}
@Override
protected void onFinished() {
super.onFinished();
ViewUtils.dismissProgressDialog();
}
@Override
protected void onSuccess(WeiBoUser result) {
super.onSuccess(result);
fragment.setUser(result);
}
}
@Override
protected int configTheme() {
return ThemeUtils.themeArr[AppSettings.getThemeColor()][2];
}
@Override
public boolean canSwipe() {
return true;
}
}