/*
* Created by Itzik Braun on 12/3/2015.
* Copyright (c) 2015 deluge. All rights reserved.
*
* Last Modification at: 3/12/15 4:27 PM
*/
package com.braunster.chatsdk.fragments;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import com.braunster.chatsdk.R;
import com.braunster.chatsdk.Utils.Debug;
import com.braunster.chatsdk.dao.BUser;
import com.braunster.chatsdk.fragments.abstracted.ChatSDKAbstractProfileFragment;
import com.braunster.chatsdk.network.BDefines;
import com.braunster.chatsdk.network.BFacebookManager;
import com.braunster.chatsdk.network.BNetworkManager;
import com.countrypicker.Country;
import org.apache.commons.lang3.StringUtils;
import timber.log.Timber;
/**
* Created by itzik on 6/17/2014.
*/
public class ChatcatProfileFragment extends ChatSDKAbstractProfileFragment {
private static final String TAG = ChatcatProfileFragment.class.getSimpleName();
private static boolean DEBUG = Debug.ProfileFragment;
public static ChatcatProfileFragment newInstance() {
ChatcatProfileFragment f = new ChatcatProfileFragment();
Bundle b = new Bundle();
f.setArguments(b);
f.setRetainInstance(true);
return f;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
super.onCreateView(inflater, container, savedInstanceState);
// Dont inflate the ChatSDKAbstractProfileFragment menu items.
enableActionBarItems(false);
initViews(inflater);
loadData();
return mainView;
}
public void initViews(LayoutInflater inflater){
if (inflater != null)
mainView = inflater.inflate(R.layout.chatcat_fragment_profile, null);
else return;
super.initViews();
setupTouchUIToDismissKeyboard(mainView, R.id.chat_sdk_circle_ing_profile_pic);
// Changing the weight of the view according to orientation.
// This will make sure (hopefully) there is enough space to show the views in landscape mode.
// int currentOrientation = getResources().getConfiguration().orientation;
// if (currentOrientation == Configuration.ORIENTATION_LANDSCAPE){
// LinearLayout.LayoutParams layoutParams = (LinearLayout.LayoutParams) mainView.findViewById(R.id.frame_profile_image_container).getLayoutParams();
// layoutParams.weight = 3;
// mainView.findViewById(R.id.frame_profile_image_container).setLayoutParams(layoutParams);
// }
// else
// {
// LinearLayout.LayoutParams layoutParams = (LinearLayout.LayoutParams) mainView.findViewById(R.id.frame_profile_image_container).getLayoutParams();
// layoutParams.weight = 2;
// mainView.findViewById(R.id.linear).setLayoutParams(layoutParams);
// }
}
@Override
public void loadData() {
super.loadData();
setDetails((Integer) BNetworkManager.sharedManager().getNetworkAdapter().getLoginInfo().get(BDefines.Prefs.AccountTypeKey));
}
@Override
public void clearData() {
super.clearData();
if (mainView != null)
{
((TextView) mainView.findViewById(R.id.chat_sdk_txt_name)).setText("");
}
}
@Override
public void logout() {
// Logout and return to the login activity.
BFacebookManager.logout(getActivity());
BNetworkManager.sharedManager().getNetworkAdapter().logout();
chatSDKUiHelper.startLoginActivity(true);
}
/** Fetching the user details from the user's metadata.*/
private void setDetails(int loginType){
if (mainView == null || getActivity() == null)
{
return;
}
BUser user = BNetworkManager.sharedManager().getNetworkAdapter().currentUserModel();
String name = user.getMetaName();
if (StringUtils.isNotEmpty(name))
((TextView) mainView.findViewById(R.id.chat_sdk_txt_name)).setText(name);
String country = user.metaStringForKey(BDefines.Keys.BCountry);
String status = user.metaStringForKey(BDefines.Keys.BStatus);
String location = user.metaStringForKey(BDefines.Keys.BLocation);
// Loading the user country icon, If not exist we will hide the icon.
if (StringUtils.isNotEmpty(country))
{
((ImageView) mainView.findViewById(R.id.chat_sdk_country_ic)).setImageResource(Country.getResId(country));
mainView.findViewById(R.id.chat_sdk_country_ic).setVisibility(View.VISIBLE);
}
else mainView.findViewById(R.id.chat_sdk_country_ic).setVisibility(View.INVISIBLE);
// Loading the user status, If not exist we will hide the status line and header.
if (StringUtils.isNotEmpty(status))
{
((TextView) mainView.findViewById(R.id.chat_sdk_txt_status)).setText(status);
mainView.findViewById(R.id.chat_sdk_txt_status).setVisibility(View.VISIBLE);
mainView.findViewById(R.id.chat_sdk_txt_status_header).setVisibility(View.VISIBLE);
}
else {
mainView.findViewById(R.id.chat_sdk_txt_status).setVisibility(View.GONE);
mainView.findViewById(R.id.chat_sdk_txt_status_header).setVisibility(View.GONE);
}
if (StringUtils.isNotEmpty(location))
{
((TextView) mainView.findViewById(R.id.chat_sdk_txt_location)).setText(location);
mainView.findViewById(R.id.relative_location).setVisibility(View.VISIBLE);
}
else
mainView.findViewById(R.id.relative_location).setVisibility(View.INVISIBLE);
if (DEBUG) Timber.d("loading user details, Name: %s, Status: %s, Country: %s, Location: %s", name, status, country, location);
chatSDKProfileHelper.loadProfilePic(loginType);
}
@Override
public void onResume() {
super.onResume();
loadData();
}
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
super.onCreateOptionsMenu(menu, inflater);
MenuItem item =
menu.add(Menu.NONE, R.id.action_chat_sdk_edit, 13, getString(R.string.action_edit));
item.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
item.setIcon(R.drawable.ic_edit);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId() == R.id.action_chat_sdk_edit)
{
chatSDKUiHelper.startEditProfileActivity(getNetworkAdapter().currentUserModel().getId());
getActivity().overridePendingTransition(R.anim.slide_bottom_top, R.anim.dummy);
return true;
}
return super.onOptionsItemSelected(item);
}
}