Mai jos regăsiți un exemplu de clasă Service în Android care conține metode care vă pot ajuta să interacționați cu Backendless:
Cod: Selectaţi tot
package com.sch.selfiehistory.common.services;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.graphics.Bitmap;
import android.util.Log;
import android.widget.ImageView;
import android.widget.ListView;
import com.backendless.Backendless;
import com.backendless.BackendlessCollection;
import com.backendless.BackendlessUser;
import com.backendless.async.callback.AsyncCallback;
import com.backendless.exceptions.BackendlessFault;
import com.backendless.files.BackendlessFile;
import com.backendless.persistence.BackendlessDataQuery;
import com.backendless.persistence.QueryOptions;
import com.sch.selfiehistory.MainActivity;
import com.sch.selfiehistory.common.Constants;
import com.sch.selfiehistory.common.Session;
import com.sch.selfiehistory.common.models.Selfie;
import com.sch.selfiehistory.common.utils.Alert;
import com.sch.selfiehistory.common.utils.ProgressBarHandler;
import com.sch.selfiehistory.modules.timeline.SelfiesAdapter;
import com.sch.selfiehistory.ui.search_users.UsersCustomList;
import com.squareup.picasso.Picasso;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
/**
* Created by CIPRIAN on 11/13/2016.
*/
public class Services {
public static void getAvatar(final Context context, final BackendlessUser user, final ImageView imageView, final int blankAvatar) {
String whereClause = "ownerId = '" + user.getUserId() + "'";
BackendlessDataQuery dataQuery = new BackendlessDataQuery();
QueryOptions queryOptions = new QueryOptions();
queryOptions.addSortByOption("created DESC");
dataQuery.setQueryOptions(queryOptions);
dataQuery.setWhereClause(whereClause);
Backendless.Data.of(Selfie.class).find(dataQuery, new AsyncCallback<BackendlessCollection<Selfie>>() {
@Override
public void handleResponse(BackendlessCollection<Selfie> selfies) {
if (selfies.getCurrentPage().size() > 0) {
Selfie selfie = selfies.getCurrentPage().get(0);
Picasso.with(context).load(selfie.getSelfieURL()).into(imageView);
} else {
Picasso.with(context).load(blankAvatar).into(imageView);
}
}
@Override
public void handleFault(BackendlessFault fault) {
Alert.showMessage(context, "Error: " + fault.getMessage());
}
});
}
public static void getLastSelfieUpdateAvatar(final Context context, final BackendlessUser user, final ImageView imageView, final int blankAvatar) {
String whereClause = "ownerId = '" + user.getUserId() + "'";
BackendlessDataQuery dataQuery = new BackendlessDataQuery();
QueryOptions queryOptions = new QueryOptions();
queryOptions.addSortByOption("created DESC");
dataQuery.setQueryOptions(queryOptions);
dataQuery.setWhereClause(whereClause);
Backendless.Data.of(Selfie.class).find(dataQuery, new AsyncCallback<BackendlessCollection<Selfie>>() {
@Override
public void handleResponse(BackendlessCollection<Selfie> selfies) {
if (selfies.getCurrentPage().size() > 0) {
Selfie selfie = selfies.getCurrentPage().get(0);
Picasso.with(context).load(selfie.getSelfieURL()).into(imageView);
if (!user.getProperty("avatarURL").equals(selfie.getSelfieURL())) {
user.setProperty("avatarURL", selfie.getSelfieURL());
Backendless.UserService.update(user, new AsyncCallback<BackendlessUser>() {
@Override
public void handleResponse(BackendlessUser response) {
Log.v("Avatar", "Avatar updated !");
}
@Override
public void handleFault(BackendlessFault fault) {
Alert.showMessage(context, "Error: " + fault.getMessage());
}
});
}
} else {
Picasso.with(context).load(blankAvatar).into(imageView);
}
}
@Override
public void handleFault(BackendlessFault fault) {
Alert.showMessage(context, "Error: " + fault.getMessage());
}
});
}
public static void getSelfies(final Context context, final BackendlessUser user, final SelfiesAdapter adapter, final List<Selfie> selfieList) {
String whereClause = "ownerId = '" + user.getUserId() + "'";
BackendlessDataQuery dataQuery = new BackendlessDataQuery();
QueryOptions queryOptions = new QueryOptions();
//queryOptions.setPageSize(25);
//queryOptions.setOffset(50);
queryOptions.addSortByOption("created DESC");
dataQuery.setQueryOptions(queryOptions);
dataQuery.setWhereClause(whereClause);
Backendless.Data.of(Selfie.class).find(dataQuery, new AsyncCallback<BackendlessCollection<Selfie>>() {
@Override
public void handleResponse(BackendlessCollection<Selfie> selfies) {
List<Selfie> firstpage = selfies.getCurrentPage();
Iterator<Selfie> iterator = firstpage.iterator();
while (iterator.hasNext()) {
Selfie selfie = iterator.next();
selfieList.add(selfie);
}
adapter.notifyDataSetChanged();
}
@Override
public void handleFault(BackendlessFault fault) {
Alert.showMessage(context, "Error: " + fault.getMessage());
}
});
}
public static void logIn(final Context context, final BackendlessUser user, final Class goTo) {
Backendless.UserService.login(user.getEmail(), user.getPassword(), new AsyncCallback<BackendlessUser>() {
@Override
public void handleResponse(BackendlessUser user) {
Session.get().setUser(user);
Intent intent = new Intent(context, goTo);
context.startActivity(intent);
}
@Override
public void handleFault(BackendlessFault fault) {
Alert.showMessage(context, "Error: " + fault.getMessage());
}
}, true);
}
public static void logOut(final Context context, final Class goTo) {
Backendless.UserService.logout(new AsyncCallback<Void>() {
@Override
public void handleResponse(Void response) {
Intent intent = new Intent(context, goTo);
context.startActivity(intent);
}
@Override
public void handleFault(BackendlessFault fault) {
Alert.showMessage(context, "Error: " + fault.getMessage());
}
});
}
public static void logUser(final Context context, String userId, final Class goTo) {
Backendless.UserService.findById(userId, new AsyncCallback<BackendlessUser>() {
@Override
public void handleResponse(BackendlessUser user) {
if (user != null) {
Backendless.UserService.setCurrentUser(user);
Session.get().setUser(user);
Intent intent = new Intent(context, goTo);
context.startActivity(intent);
}
}
@Override
public void handleFault(BackendlessFault fault) {
Alert.showMessage(context, "Error: " + fault.getMessage());
}
});
}
public static void photoUpload(final Context context, final Bitmap bitmap, final String selfieName, final BackendlessUser user) {
Backendless.Files.Android.upload(bitmap, Bitmap.CompressFormat.PNG, 100, selfieName, Constants.BACKENDLESS_SELFIES_PATH, new AsyncCallback<BackendlessFile>() {
@Override
public void handleResponse(BackendlessFile response) {
final HashMap selfie = new HashMap();
selfie.put("selfieName", selfieName);
selfie.put("selfieOwnerName", user.getProperty("name"));
selfie.put("selfieURL", response.getFileURL());
Services.saveSelfie(context, selfie);
}
@Override
public void handleFault(BackendlessFault fault) {
Alert.showMessage(context, "Error: " + fault.getMessage());
}
});
}
public static void register(final Context context, final BackendlessUser user, Class goTo) {
Backendless.UserService.register(user, new AsyncCallback<BackendlessUser>() {
@Override
public void handleResponse(BackendlessUser response) {
Alert.showMessage(context, "Registration " + response.getEmail() + " successfully registered");
Intent intent = new Intent(context, MainActivity.class);
context.startActivity(intent);
}
@Override
public void handleFault(BackendlessFault fault) {
Alert.showMessage(context, "Error: " + fault.getMessage());
}
});
}
public static void saveSelfie(final Context context, final HashMap selfie) {
Backendless.Persistence.of("Selfie").save(selfie, new AsyncCallback<Map>() {
@Override
public void handleResponse(Map response) {
Alert.showMessage(context, "Selfie posted: " + selfie.get("selfieName"));
}
@Override
public void handleFault(BackendlessFault fault) {
Alert.showMessage(context, "Error: " + fault.getMessage());
}
});
}
public static void searchUsers(final Context context, final Activity activity, final ListView listView, final String search, final ProgressBarHandler progressBarHandler) {
final ArrayList<String> userNames = new ArrayList<String>();
progressBarHandler.show();
String whereClause = "name LIKE '%" + search + "%'";
BackendlessDataQuery dataQuery = new BackendlessDataQuery();
QueryOptions queryOptions = new QueryOptions();
queryOptions.addSortByOption("created DESC");
dataQuery.setQueryOptions(queryOptions);
dataQuery.setWhereClause(whereClause);
Backendless.Data.of(BackendlessUser.class).find(dataQuery, new AsyncCallback<BackendlessCollection<BackendlessUser>>() {
@Override
public void handleResponse(BackendlessCollection<BackendlessUser> response) {
ArrayList<BackendlessUser> firstpage = (ArrayList<BackendlessUser>) response.getCurrentPage();
Iterator<BackendlessUser> iterator = firstpage.iterator();
while (iterator.hasNext()) {
BackendlessUser user = iterator.next();
userNames.add(user.getProperty("name").toString());
}
UsersCustomList adapter = new UsersCustomList(activity, userNames, firstpage);
listView.setAdapter(adapter);
Session.get().setSearchUsers(firstpage);
progressBarHandler.hide();
}
@Override
public void handleFault(BackendlessFault fault) {
Alert.showMessage(context, "Error: " + fault.getMessage());
}
});
}
}
Autor thread: stefanciprian, Echipa Specialişti IT
Mulțumesc