package com.letv.star;
import org.json.JSONException;
import org.json.JSONObject;
import android.app.Activity;
import android.content.Context;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.os.Bundle;
import android.widget.Toast;
import com.letv.star.bean.User;
import com.letv.star.net.HttpUtil;
import com.letv.star.parse.ShareParser;
import com.letv.star.parse.UserParser;
public class LetvStar {
public final static String PREFERENCES = "letv_star" ;
public static String APP_KEY = "f3baaf29f3383b560a1857893ead8710" ;
public static String APP_SECRET = "9c0b26a21c5e71fe6b9b79f924c593f9" ;
private static LetvStar mLetvStar ;
public User mUser ;
// private final String BASE_URL = "http://10.200.89.34/Api/index.php?r=";//测试
private final String BASE_URL = "http://mobile.starcast.letv.com/index.php?r=";//正式
public LetvStar(){
}
public synchronized static LetvStar getInstance(){
if(mLetvStar == null)
mLetvStar = new LetvStar();
return mLetvStar ;
}
public void loginDialog(Context context,LetvStarListener listener, int width, int height){
if(isLogin(context)){
listener.onComplete() ;
return ;
}else{
new LetvStarDialog(context, listener, width, height).show();
}
}
public void loginDialog(Context context,LetvStarListener listener){
if(isLogin(context)){
listener.onComplete() ;
return ;
}else{
new LetvStarDialog(context, listener).show();
}
}
public void login(Context context , LetvStarListener listener){
if(isLogin(context)){
listener.onComplete() ;
return ;
}else{
LetvStarLoginActivity.lanuch(context, listener);
}
}
public boolean login(final Context context , String name , String password , LetvStarListener listener){
Bundle params = new Bundle();
params.putString("client_id", LetvStar.APP_KEY);
params.putString("client_secret", LetvStar.APP_SECRET);
params.putString("grant_type", "password");
if(name == null || password == null || name.length() == 0 || password.length() == 0){
listener.onErr("用户名或密码不能为空");
return false ;
}
params.putString("username", name);
params.putString("password", password);
String data = HttpUtil.doPost(context , BASE_URL + "user/login", params);
if(data != null && data.length() > 0){
boolean flag = new UserParser(context , data , name , password).Parser();
if(flag){
listener.onComplete();
return true ;
}else{
listener.onFail("登录失败");
if(context instanceof Activity){
((Activity)context).runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(context, "登录失败", Toast.LENGTH_SHORT).show();
}
});
}
}
}else{
listener.onFail("请求失败");
if(context instanceof Activity){
((Activity)context).runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(context, "登录失败", Toast.LENGTH_SHORT).show();
}
});
}
}
return false ;
}
public void share(final Context context , String desc , String albumId , String isAlbum , String cid , String pic , String name , String year , String director , String stars , String duration , final LetvStarListener listener){
String album = createAlbumJson(albumId, isAlbum, cid, pic, name, year, director, stars, duration);
final Bundle params = new Bundle();
params.putString("oauth_token", mUser.getToken());
params.putString("uid", mUser.getUid());
params.putString("nick", mUser.getNick());
params.putString("type", "6");
params.putString("desc", desc);
params.putString("album", album);
params.putString("loc", "");
params.putString("lon", "");
params.putString("lat", "");
params.putString("version", "2.1.0");
String data = HttpUtil.doPost(context , BASE_URL + "content/create", params);//正式
System.out.println("data == " + data);
if(data != null && data.length() > 0){
int flag = new ShareParser(data).parse();
if(flag == 0){
listener.onComplete();
}else{
if(flag == 1002 || flag == 1003){
login(context, mUser.getName() , mUser.getPassword() ,new LetvStarListener() {
@Override
public void onFail(String failLog) {
listener.onFail("分享失败");
}
@Override
public void onErr(String errLog) {
listener.onFail("分享失败");
}
@Override
public void onComplete() {
mUser = null ;
isLogin(context);
params.putString("oauth_token", mUser.getToken());
String data = HttpUtil.doPost(context , BASE_URL + "content/create", params);
if(data != null && data.length() > 0){
int flag = new ShareParser(data).parse();
if(flag == 0){
listener.onComplete();
}else{
listener.onFail("分享失败");
}
}
}
});
}else{
listener.onFail("分享失败");
}
}
}else{
listener.onFail("请求失败");
}
}
public String createAlbumJson(String albumId , String isAlbum , String cid , String pic , String name , String year , String director , String stars , String duration){
JSONObject jsonObject = new JSONObject() ;
// if("4".equals(cid)){
// cid = "1";
// }else if("5".equals(cid)){
// cid = "2";
// }else if("6".equals(cid)){
// cid = "3";
// }else if("86".equals(cid)){
// cid = "4";
// }else if("78".equals(cid)){
// cid = "11";
// }else if("221".equals(cid)){
// cid = "12";
// }else if("164".equals(cid)){
// cid = "19";
// }else if("202".equals(cid)){
// cid = "21";
// }else if("111".equals(cid)){
// cid = "16";
// }else if("92".equals(cid)){
// cid = "17";
// }else if("186".equals(cid)){
// cid = "20";
// }
try {
jsonObject.put("id", albumId);
jsonObject.put("isalbum", isAlbum);
jsonObject.put("cid", cid);
jsonObject.put("pic", pic);
jsonObject.put("name", name);
if(null == year)
year = "";
jsonObject.put("year", year);
if(null == director)
director = "";
jsonObject.put("director", director);
if(null == stars)
stars = "";
jsonObject.put("stars", stars);
if(null == duration)
duration = "";
jsonObject.put("duration", duration);
} catch (JSONException e) {
e.printStackTrace();
return "";
}
return jsonObject.toString();
}
public void saveUser(Context context , User user){
mUser = user ;
SharedPreferences preferences = context.getSharedPreferences(PREFERENCES, Context.MODE_PRIVATE);
Editor editor = preferences.edit() ;
editor.putString("name", user.getName());
editor.putString("password", user.getPassword());
editor.putString("uid", user.getUid());
editor.putString("nick", user.getNick());
editor.putString("token", user.getToken());
editor.putLong("expires", user.getExpires());
editor.putLong("time", user.getTime());
editor.commit() ;
}
public boolean isLogin(Context context){
if(mUser == null){
SharedPreferences preferences = context.getSharedPreferences(PREFERENCES, Context.MODE_PRIVATE);
String uid = preferences.getString("uid", null);
if(uid != null){
String name = preferences.getString("name", null);
String password = preferences.getString("password", null);
String nick = preferences.getString("nick", null);
String token = preferences.getString("token", null);
long expires = preferences.getLong("expires", 0);
mUser = new User() ;
mUser.setName(name);
mUser.setPassword(password);
mUser.setUid(uid);
mUser.setNick(nick);
mUser.setToken(token);
mUser.setExpires(expires);
}
}
if(mUser != null && mUser.getUid() != null){
return true ;
}
return false ;
}
public void logout(Context context){
SharedPreferences preferences = context.getSharedPreferences(PREFERENCES, Context.MODE_PRIVATE);
Editor editor = preferences.edit() ;
editor.clear();
editor.commit() ;
mUser = null ;
}
}