/*
* 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.abstracted;
import android.content.Intent;
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.view.WindowManager;
import android.widget.ProgressBar;
import com.braunster.chatsdk.R;
import com.braunster.chatsdk.Utils.Debug;
import com.braunster.chatsdk.Utils.helper.ChatSDKProfileHelper;
import com.braunster.chatsdk.dao.BUser;
import com.braunster.chatsdk.fragments.ChatSDKBaseFragment;
import com.braunster.chatsdk.network.BDefines;
import com.braunster.chatsdk.network.BNetworkManager;
import com.braunster.chatsdk.object.Cropper;
import de.hdodenhof.circleimageview.CircleImageView;
/**
* Created by itzik on 6/17/2014.
*/
public abstract class ChatSDKAbstractProfileFragment extends ChatSDKBaseFragment {
protected static final int PHOTO_PICKER_ID = 100;
private static final String TAG = ChatSDKAbstractProfileFragment.class.getSimpleName();
private static boolean DEBUG = Debug.ProfileFragment;
private static final String LOGIN_TYPE = "login_type";
protected ChatSDKProfileHelper chatSDKProfileHelper;
protected Cropper crop;
protected CircleImageView profileCircleImageView;
protected ProgressBar progressBar;
private boolean enableActionBarItems = true;
protected boolean clickableProfilePic = true;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setHasOptionsMenu(enableActionBarItems);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
getActivity().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);
return mainView;
}
@Override
public void initViews(){
super.initViews();
progressBar = (ProgressBar) mainView.findViewById(R.id.chat_sdk_progressbar);
profileCircleImageView = (CircleImageView) mainView.findViewById(R.id.chat_sdk_circle_ing_profile_pic);
chatSDKProfileHelper = new ChatSDKProfileHelper(getActivity(), profileCircleImageView, progressBar, chatSDKUiHelper, mainView);
chatSDKProfileHelper.setFragment(this);
}
@Override
public void onResume() {
super.onResume();
// Long click will open the gallery so the user can change is picture.
if (clickableProfilePic)
profileCircleImageView.setOnClickListener(ChatSDKProfileHelper.getProfilePicClickListener(getActivity(), this));
}
@Override
public void clearData() {
super.clearData();
if (mainView != null)
{
profileCircleImageView.setImageBitmap(null);
profileCircleImageView.setImageResource(R.drawable.ic_action_user);
}
}
protected Integer getLoginType(){
return (Integer) BNetworkManager.sharedManager().getNetworkAdapter().getLoginInfo().get(BDefines.Prefs.AccountTypeKey);
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
chatSDKProfileHelper.handleResult(requestCode, resultCode, data);
}
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
super.onCreateOptionsMenu(menu, inflater);
if (!enableActionBarItems)
return;
MenuItem item =
menu.add(Menu.NONE, R.id.action_chat_sdk_logout, 12, "Logout");
item.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
item.setIcon(R.drawable.ic_cancel);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
/* Cant use switch in the library*/
int id = item.getItemId();
if (id == R.id.action_chat_sdk_logout)
{
logout();
return true;
}
return super.onOptionsItemSelected(item);
}
public void setProfilePicClickable(boolean clickableProfilePic) {
this.clickableProfilePic = clickableProfilePic;
}
public abstract void logout();
public void enableActionBarItems(boolean enableActionBarItems) {
this.enableActionBarItems = enableActionBarItems;
}
}