package com.ouwenjie.note.helper; import android.content.Context; import com.ouwenjie.note.R; import com.ouwenjie.note.model.CloudNote; import java.util.List; import cn.bmob.v3.Bmob; import cn.bmob.v3.BmobQuery; import cn.bmob.v3.BmobUser; import cn.bmob.v3.listener.DeleteListener; import cn.bmob.v3.listener.FindListener; import cn.bmob.v3.listener.GetListener; import cn.bmob.v3.listener.OtherLoginListener; import cn.bmob.v3.listener.SaveListener; import cn.bmob.v3.listener.UpdateListener; /** * * Created by 文杰 on 2015/6/19. */ public class BmobHelper { private static BmobQuery<CloudNote> noteQuery; /** * 初始化Bmob * @param context */ public static void initBmob(Context context){ String bmobId = context.getResources().getString(R.string.bmob_id); Bmob.initialize(context,bmobId); } public static void loginWithAuth(Context context,String snsType,String accessToken,String expiresIn,String userId, OtherLoginListener listener){ BmobUser.BmobThirdUserAuth authInfo = new BmobUser.BmobThirdUserAuth(snsType,accessToken, expiresIn,userId); BmobUser.loginWithAuthData(context, authInfo, listener); } /** * 保存一个note * @param note * @param context * @param saveListener */ public static void saveNote(CloudNote note,Context context,SaveListener saveListener){ note.save(context,saveListener); } /** * 根据ObjectId查找一个NOTE * @param context * @param id * @return */ public static void findNoteByObjId(final Context context, final String id,GetListener<CloudNote> listener){ noteQuery = new BmobQuery<>(); noteQuery.getObject(context, id, listener); } /** * 根据创建时间查找一个NOTE * @param context * @param createDate * @return */ public static void findNoteByCreateDate(final Context context,String createDate,FindListener<CloudNote> listener){ noteQuery = new BmobQuery<>(); noteQuery.addWhereEqualTo("createDate",createDate); noteQuery.findObjects(context, listener); } /** * 更新一个Note * @param context * @param note * @param id * @param listener */ public static void updateNote(Context context,CloudNote note,String id,UpdateListener listener){ note.update(context,id,listener); } /** * 更新一个NOTE(自动查找ObjID * @param context * @param note * @param listener */ public static void updateNote(final Context context, CloudNote note, final UpdateListener listener){ findNoteByCreateDate(context, note.getCreateDate(), new FindListener<CloudNote>() { @Override public void onSuccess(List<CloudNote> list) { CloudNote note = list.get(0); String id = note.getObjectId(); if((id != null) && !(id.equals(""))) { updateNote(context, note, id, listener); } } @Override public void onError(int i, String s) { listener.onFailure(i,s); } }); } /** * 删除数据只能通过objectId来删除,目前不提供查询条件方式的删除方法。 * @param context * @param note * @param id * @param listener */ public static void deleteNote(Context context,CloudNote note,String id,DeleteListener listener){ note.setObjectId(id); note.delete(context,listener); } /** * 删除数据只能通过objectId来删除,目前不提供查询条件方式的删除方法。 * @param context * @param note * @param listener */ public static void deleteNote(final Context context,CloudNote note,final DeleteListener listener){ findNoteByCreateDate(context, note.getCreateDate(), new FindListener<CloudNote>() { @Override public void onSuccess(List<CloudNote> list) { CloudNote note = list.get(0); String id = note.getObjectId(); if((id != null) && !(id.equals(""))) { deleteNote(context,note,id,listener); } } @Override public void onError(int i, String s) { listener.onFailure(i,s); } }); } }