/**
* Copyright 2010 Mark Wyszomierski
*/
package com.joelapenna.foursquared;
import com.joelapenna.foursquare.Foursquare;
import com.joelapenna.foursquare.error.FoursquareException;
import com.joelapenna.foursquare.types.User;
import com.joelapenna.foursquared.location.LocationUtils;
import com.joelapenna.foursquared.util.MenuUtils;
import com.joelapenna.foursquared.util.NotificationsUtil;
import com.joelapenna.foursquared.util.RemoteResourceManager;
import com.joelapenna.foursquared.util.StringFormatters;
import com.joelapenna.foursquared.util.UiUtil;
import com.joelapenna.foursquared.util.UserUtils;
import com.joelapenna.foursquared.widget.PhotoStrip;
import com.joelapenna.foursquared.widget.UserContactAdapter;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.IntentFilter;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Typeface;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Handler;
import android.text.Spannable;
import android.text.SpannableString;
import android.text.TextUtils;
import android.text.style.CharacterStyle;
import android.text.style.StyleSpan;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
import java.io.IOException;
import java.util.Observable;
import java.util.Observer;
/**
* @date March 8, 2010.
* @author Mark Wyszomierski (markww@gmail.com)
*/
public class UserDetailsActivity extends Activity {
private static final String TAG = "UserDetailsActivity";
private static final boolean DEBUG = FoursquaredSettings.DEBUG;
private static final int ACTIVITY_REQUEST_CODE_PINGS = 815;
private static final int ACTIVITY_REQUEST_CODE_FETCH_IMAGE = 816;
private static final int ACTIVITY_REQUEST_CODE_VIEW_AND_SET_IMAGE = 817;
public static final String EXTRA_USER_PARCEL = Foursquared.PACKAGE_NAME
+ ".UserDetailsActivity.EXTRA_USER_PARCEL";
public static final String EXTRA_USER_ID = Foursquared.PACKAGE_NAME
+ ".UserDetailsActivity.EXTRA_USER_ID";
public static final String EXTRA_SHOW_ADD_FRIEND_OPTIONS = Foursquared.PACKAGE_NAME
+ ".UserDetailsActivity.EXTRA_SHOW_ADD_FRIEND_OPTIONS";
private static final int LOAD_TYPE_USER_NONE = 0;
private static final int LOAD_TYPE_USER_ID = 1;
private static final int LOAD_TYPE_USER_PARTIAL = 2;
private static final int LOAD_TYPE_USER_FULL = 3;
private static final int MENU_REFRESH = 0;
private static final int MENU_CONTACT = 1;
private static final int MENU_PINGS = 2;
private static final int DIALOG_CONTACTS = 0;
private StateHolder mStateHolder;
private RemoteResourceManager mRrm;
private RemoteResourceManagerObserver mResourcesObserver;
private Handler mHandler;
private BroadcastReceiver mLoggedOutReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
if (DEBUG) Log.d(TAG, "onReceive: " + intent);
finish();
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
setContentView(R.layout.user_details_activity);
registerReceiver(mLoggedOutReceiver, new IntentFilter(Foursquared.INTENT_ACTION_LOGGED_OUT));
Object retained = getLastNonConfigurationInstance();
if (retained != null) {
mStateHolder = (StateHolder) retained;
mStateHolder.setActivityForTasks(this);
} else {
mStateHolder = new StateHolder();
if (getIntent().hasExtra(EXTRA_USER_PARCEL)) {
Log.i(TAG, "Starting " + TAG + " with full user parcel.");
User user = getIntent().getExtras().getParcelable(EXTRA_USER_PARCEL);
mStateHolder.setUser(user);
mStateHolder.setLoadType(LOAD_TYPE_USER_PARTIAL);
} else if (getIntent().hasExtra(EXTRA_USER_ID)) {
Log.i(TAG, "Starting " + TAG + " with user ID.");
User user = new User();
user.setId(getIntent().getExtras().getString(EXTRA_USER_ID));
mStateHolder.setUser(user);
mStateHolder.setLoadType(LOAD_TYPE_USER_ID);
} else {
Log.i(TAG, "Starting " + TAG + " as logged-in user.");
User user = new User();
user.setId(null);
mStateHolder.setUser(user);
mStateHolder.setLoadType(LOAD_TYPE_USER_ID);
}
mStateHolder.setIsLoggedInUser(
mStateHolder.getUser().getId() == null ||
mStateHolder.getUser().getId().equals(
((Foursquared) getApplication()).getUserId()));
}
mHandler = new Handler();
mRrm = ((Foursquared) getApplication()).getRemoteResourceManager();
mResourcesObserver = new RemoteResourceManagerObserver();
mRrm.addObserver(mResourcesObserver);
ensureUi();
if (mStateHolder.getLoadType() != LOAD_TYPE_USER_FULL &&
!mStateHolder.getIsRunningUserDetailsTask() &&
!mStateHolder.getRanOnce()) {
mStateHolder.startTaskUserDetails(this, mStateHolder.getUser().getId());
}
}
@Override
public void onPause() {
super.onPause();
if (isFinishing()) {
mStateHolder.cancelTasks();
mHandler.removeCallbacks(mRunnableUpdateUserPhoto);
RemoteResourceManager rrm = ((Foursquared) getApplication()).getRemoteResourceManager();
rrm.deleteObserver(mResourcesObserver);
}
}
@Override
protected void onDestroy() {
super.onDestroy();
unregisterReceiver(mLoggedOutReceiver);
}
private void ensureUi() {
int sdk = UiUtil.sdkVersion();
View viewProgressBar = findViewById(R.id.venueActivityDetailsProgress);
TextView tvUsername = (TextView)findViewById(R.id.userDetailsActivityUsername);
TextView tvLastSeen = (TextView)findViewById(R.id.userDetailsActivityHometownOrLastSeen);
Button btnFriend = (Button)findViewById(R.id.userDetailsActivityFriendButton);
View viewMayorships = findViewById(R.id.userDetailsActivityGeneralMayorships);
View viewBadges = findViewById(R.id.userDetailsActivityGeneralBadges);
View viewTips = findViewById(R.id.userDetailsActivityGeneralTips);
TextView tvMayorships = (TextView)findViewById(R.id.userDetailsActivityGeneralMayorshipsValue);
TextView tvBadges = (TextView)findViewById(R.id.userDetailsActivityGeneralBadgesValue);
TextView tvTips = (TextView)findViewById(R.id.userDetailsActivityGeneralTipsValue);
ImageView ivMayorshipsChevron = (ImageView)findViewById(R.id.userDetailsActivityGeneralMayorshipsChevron);
ImageView ivBadgesChevron = (ImageView)findViewById(R.id.userDetailsActivityGeneralBadgesChevron);
ImageView ivTipsChevron = (ImageView)findViewById(R.id.userDetailsActivityGeneralTipsChevron);
View viewCheckins = findViewById(R.id.userDetailsActivityCheckins);
View viewFriendsFollowers = findViewById(R.id.userDetailsActivityFriendsFollowers);
View viewAddFriends = findViewById(R.id.userDetailsActivityAddFriends);
View viewTodos = findViewById(
没有合适的资源?快使用搜索试试~ 我知道了~
foursquare
共1638个文件
i:1073个
java:208个
xml:166个
4星 · 超过85%的资源 需积分: 9 17 下载量 60 浏览量
2011-05-19
11:19:28
上传
评论 2
收藏 4.53MB ZIP 举报
温馨提示
国外著名的LBS社交类应用程序 foursquare源码,供大家分析研究
资源推荐
资源详情
资源评论
收起资源包目录
foursquare (1638个子文件)
branch 8B
undo.branch 7B
tags.cache 190B
branchheads.cache 95B
.classpath 455B
.classpath 350B
00manifest.d 398KB
00changelog.d 289KB
dirstate 34KB
undo.dirstate 0B
fncache 57KB
.hgignore 419B
hgrc 57B
.hgtags 102B
changelog-en.html 9KB
00changelog.i 84KB
00manifest.i 83KB
shamu.png.i 76KB
shamu.png.i 76KB
signpost-core.jar.i 62KB
_venue_activity.java.i 40KB
strings.xml.i 35KB
_shout_activity.java.i 32KB
signpost-core.jar.i 32KB
signpost-core.jar.i 30KB
signpost-1.0-_s_n_a_p_s_h_o_t.jar.i 30KB
_user_details_activity.java.i 28KB
_friends_activity.java.i 27KB
_foursquared.java.i 27KB
_nearby_venues_activity.java.i 27KB
_android_manifest.xml.i 25KB
_foursquare_http_api_v1.java.i 25KB
widget__header.9.png.i 24KB
_preference_activity.java.i 22KB
_add_venue_activity.java.i 22KB
_search_venues_activity.java.i 21KB
_foursquare.java.i 20KB
main__logo.png.i 19KB
_main_activity.java.i 16KB
_venue_activity.java.i 16KB
_venue_checkin_activity.java.i 16KB
_add_friends_by_user_input_activity.java.i 15KB
icon.png.i 15KB
_foursquared.java.i 14KB
_venue_tips_activity.java.i 14KB
_login_activity.java.i 14KB
_venue_checkins_activity.java.i 14KB
changelog-en.html.i 14KB
styles.xml.i 13KB
_venue_tips_activity.java.i 13KB
_user_activity.java.i 13KB
_preferences.java.i 13KB
_tip_activity.java.i 13KB
widget__header.png.i 13KB
crown.png.i 12KB
_foursquare_http_api.java.i 12KB
_tips_activity.java.i 12KB
icon.png.i 12KB
_venue_search_activity.java.i 12KB
_user_actions_activity.java.i 11KB
_checkin_list_adapter.java.i 11KB
icon.png.i 11KB
_todos_activity.java.i 10KB
_search_venue_activity.java.i 10KB
ic__menu__preferences.png.i 9KB
_foursquare.java.i 9KB
ic__menu__checkin.png.i 9KB
ic__menu__refresh.png.i 9KB
_friends_map_activity.java.i 9KB
_checkins_activity.java.i 9KB
_foursquare_http_api.java.i 9KB
_pings_service.java.i 8KB
icon.png.i 8KB
ic__menu__search.png.i 8KB
formatting.xml.i 8KB
_venue_list_adapter.java.i 8KB
_checkin.java.i 8KB
_n_o_t_e_s.i 8KB
_friend_requests_activity.java.i 8KB
venue__shortcut__icon.png.i 8KB
venue__activity.xml.i 8KB
_checkin_result_dialog.java.i 8KB
ic__menu__preferences.png.i 8KB
_fetch_image_for_view_intent.java.i 8KB
_search_venue_map_activity.java.i 7KB
api__todo.xml.i 7KB
ic__menu__venue__add__todo.png.i 7KB
ic__menu__venue__leave__tip.png.i 7KB
_user_activity.java.i 7KB
preferences.xml.i 7KB
_user.java.i 7KB
dumpcatcher.jar.i 7KB
user__details__activity.xml.i 7KB
_checkins_activity.java.i 7KB
_venue.java.i 7KB
_android_manifest.xml.i 7KB
_search_venues_activity.java.i 7KB
_preference_activity.java.i 7KB
_notifications_service.java.i 7KB
gen__parser.py.i 6KB
共 1638 条
- 1
- 2
- 3
- 4
- 5
- 6
- 17
资源评论
- yuqiaowxj2011-09-23可能是少东西,导入后有挺多bug,不能直接使用,不过代码还是值得研究的。
- cxflovechina2014-05-28资源不错,对api使用方式可供参考
- 攻城必备2011-09-21很好,但是缺失一些文件不能编译,正在整理
andandroid
- 粉丝: 7
- 资源: 16
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功