/* * * * Copyright 2015 Van Shu * * * * Licensed under the Apache License, Version 2.0 (the "License"); * * you may not use this file except in compliance with the License. * * You may obtain a copy of the License at * * * * http://www.apache.org/licenses/LICENSE-2.0 * * * * Unless required by applicable law or agreed to in writing, software * * distributed under the License is distributed on an "AS IS" BASIS, * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * * See the License for the specific language governing permissions and * * limitations under the License. * */ package com.mobimvp.cliques.ui.fragment.profile; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.support.annotation.Nullable; import android.text.Html; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.Button; import android.widget.LinearLayout; import android.widget.TextView; import com.android.volley.Response; import com.mobimvp.cliques.R; import com.mobimvp.cliques.model.User; import com.mobimvp.cliques.service.DribbbleApi; import com.mobimvp.cliques.service.GsonRequest; import com.mobimvp.cliques.ui.FollowerProfileActivity; import com.mobimvp.cliques.ui.ProfileActivity; import com.mobimvp.cliques.ui.fragment.BaseFragment; import de.greenrobot.event.EventBus; import static com.mobimvp.cliques.util.LogUtils.makeLogTag; /** * Created by Van on 2015/2/11. */ public class AboutProfileFragment extends BaseFragment implements View.OnClickListener { private static final String TAG = makeLogTag(AboutProfileFragment.class); private TextView mFollowersCount; private TextView mFollowingCount; private TextView mBio; private TextView mLocation; private TextView mWebsite; private TextView mTwitter; private LinearLayout mFollowersLayout; private LinearLayout mFollowingLayout; private LinearLayout mWebsiteLayout; private LinearLayout mTwitterLayout; private Button mFollow; private User mUser; private View mContentView; private String userId; private int mMode; @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { mContentView = inflater.inflate(R.layout.fragment_about_profile, container, false); mFollowersCount= (TextView) mContentView.findViewById(R.id.profile_followers_count); mFollowingCount= (TextView) mContentView.findViewById(R.id.profile_following_count); mFollowersLayout=(LinearLayout)mContentView.findViewById(R.id.profile_followers); mFollowingLayout=(LinearLayout)mContentView.findViewById(R.id.profile_following); mBio= (TextView) mContentView.findViewById(R.id.profile_bio); mLocation= (TextView) mContentView.findViewById(R.id.profile_location); mWebsite= (TextView) mContentView.findViewById(R.id.profile_website); mTwitter= (TextView) mContentView.findViewById(R.id.profile_twitter); mTwitterLayout=(LinearLayout)mContentView.findViewById(R.id.profile_twitter_layout); mWebsiteLayout=(LinearLayout)mContentView.findViewById(R.id.profile_website_layout); mFollow=(Button)mContentView.findViewById(R.id.btn_follow); mFollowersLayout.setOnClickListener(this); mFollowingLayout.setOnClickListener(this); mTwitterLayout.setOnClickListener(this); mWebsiteLayout.setOnClickListener(this); mFollow.setOnClickListener(this); return super.onCreateView(inflater,container,savedInstanceState); } @Override public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); } @Override public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); loadData(); setContentView(mContentView); } private void loadData(){ mMode=getArguments().getInt("mMode"); userId=getArguments().getString("userId"); if(mMode== ProfileActivity.MY_PROFILE){ addRequest(new GsonRequest<>(DribbbleApi.getAuthenticatedUser(), User.class, responseListener, errorListener)); }else if(mMode==ProfileActivity.OTHER_PROFILE){ addRequest(new GsonRequest<>(DribbbleApi.getOneUser(userId),User.class,responseListener,errorListener)); } } private Response.Listener<User> responseListener=new Response.Listener<User>() { @Override public void onResponse(User user) { if(user==null){ setEmptyView(); }else{ if(mMode==ProfileActivity.OTHER_PROFILE){ mFollow.setVisibility(View.VISIBLE); } showResult(); EventBus.getDefault().post(user); mUser=user; mFollowersCount.setText(user.followersCount); mFollowingCount.setText(user.followingsCount); mBio.setText(Html.fromHtml(user.bio)); mLocation.setText(user.location); mWebsite.setText(user.links.web); mTwitter.setText(user.links.twitter); } } }; @Override public void onDestroyView() { super.onDestroyView(); } @Override public void onClick(View v) { Intent intent; switch (v.getId()){ case R.id.profile_followers: intent=new Intent(getActivity(),FollowerProfileActivity.class); intent.putExtra("TYPE",FollowerProfileActivity.FOLLOWER); intent.putExtra("userId",userId); startActivity(intent); break; case R.id.profile_following: intent=new Intent(getActivity(),FollowerProfileActivity.class); intent.putExtra("TYPE",FollowerProfileActivity.FOLLOWEE); intent.putExtra("userId",userId); startActivity(intent); break; case R.id.profile_website_layout: startActivity(new Intent(Intent.ACTION_VIEW,Uri.parse(mUser.links.web))); break; case R.id.profile_twitter_layout: String twitterUserName=mUser.links.twitter.substring(mUser.links.twitter.lastIndexOf("/")+1); try { startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("twitter://user?screen_name=" + twitterUserName))); }catch (Exception e) { startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("https://twitter.com/#!/" + twitterUserName))); } case R.id.btn_follow: //TODO follow other people break; } } }