/*
* Copyright (c) 2012 Socialize Inc.
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
package com.socialize;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import com.socialize.listener.SocializeInitListener;
import com.socialize.log.SocializeLogger.LogLevel;
import com.socialize.ui.SocializeActivityLifecycleListener;
/**
* Singleton helper class to make accessing the socialize service easier.
* @author Jason Polites
*/
public class Socialize {
// This will be set during the build process
public static final String VERSION = "3.1.5";
public static final String ENTITY_OBJECT = "socialize.entity";
public static final String ENTITY_ID = "socialize.entity.id";
public static final String ACTION_ID = "socialize.action.id";
public static final String ACTION_TYPE = "socialize.action.type";
public static final String DIRECT_URL = "socialize.direct.url";
public static final String LOG_KEY = "Socialize";
public static final String USER_ID = "socialize.user.id";
public static final String DEFAULT_USER_ICON = "default_user_icon.png";
public static LogLevel DEFAULT_LOG_LEVEL = LogLevel.WARN;
static final SocializeServiceImpl instance = new SocializeServiceImpl();
static SocializeLifecycleListener socializeLifecycleListener;
static SocializeActivityLifecycleListener socializeActivityLifecycleListener;
private Socialize() {
super();
}
/**
* Initialize Socialize synchronously. Should not be called from the main UI thread.
*/
public static void init(Context context) {
instance.init(context);
}
/**
* Initialize Socialize asynchronously. Can be called from the main UI thread.
*/
public static void initAsync(Context context) {
instance.initAsync(context, null);
}
/**
* Initialize Socialize asynchronously. Can be called from the main UI thread.
* @param listener A listener which will be called after init.
*/
public static void initAsync(Context context, SocializeInitListener listener) {
instance.initAsync(context, listener);
}
/**
* Expert only. Does not normally need to be called.
*/
public static void destroy(Context context) {
instance.destroy();
}
/**
* Returns the Socialize singleton instance.
* @return The Socialize singleton instance.
*/
public static SocializeService getSocialize() {
return instance;
}
static Object getBean(String name) {
return instance.getContainer().getBean(name);
}
/**
* Called by containing Activities in their onPause() method.
*/
public static void onPause(Activity context) {
instance.onPause(context);
if(socializeLifecycleListener != null) {
socializeLifecycleListener.onPause(context);
}
}
/**
* Called by containing Activities in their onResume() method.
*/
public static void onResume(Activity context) {
instance.onResume(context);
if(socializeLifecycleListener != null) {
socializeLifecycleListener.onResume(context);
}
}
/**
* Called by containing Activities in their onCreate() method.
*/
public static void onCreate(Activity context, Bundle savedInstanceState) {
instance.onCreate(context, savedInstanceState);
if(socializeLifecycleListener != null) {
socializeLifecycleListener.onCreate(context, savedInstanceState);
}
}
/**
* Called by containing Activities in their onDestroy() method.
*/
public static void onDestroy(Activity context) {
instance.onDestroy(context);
if(socializeLifecycleListener != null) {
socializeLifecycleListener.onDestroy(context);
}
}
/**
* Called by containing Activities in their onStart() method.
*/
public static void onStart(Activity context) {
instance.onStart(context);
if(socializeLifecycleListener != null) {
socializeLifecycleListener.onStart(context);
}
}
/**
* Called by containing Activities in their onStop() method.
*/
public static void onStop(Activity context) {
instance.onStop(context);
if(socializeLifecycleListener != null) {
socializeLifecycleListener.onStop(context);
}
}
public static void setSocializeLifecycleListener(SocializeLifecycleListener socializeLifecycleListener) {
Socialize.socializeLifecycleListener = socializeLifecycleListener;
}
public static SocializeActivityLifecycleListener getSocializeActivityLifecycleListener() {
return socializeActivityLifecycleListener;
}
public static void setSocializeActivityLifecycleListener(SocializeActivityLifecycleListener socializeActivityLifecycleListener) {
Socialize.socializeActivityLifecycleListener = socializeActivityLifecycleListener;
}
}