/*
*
* * 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;
}
}
}