Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.alexandergartemov.backendlessdatabase;
- import android.os.Bundle;
- import android.support.v7.app.AppCompatActivity;
- import android.util.Log;
- import android.view.View;
- import android.widget.Button;
- import android.widget.TextView;
- import com.backendless.Backendless;
- import com.backendless.BackendlessCollection;
- import com.backendless.async.callback.AsyncCallback;
- import com.backendless.exceptions.BackendlessFault;
- import com.backendless.persistence.BackendlessDataQuery;
- import java.util.ArrayList;
- import java.util.List;
- import java.util.Map;
- import java.util.Set;
- public class MainActivity extends AppCompatActivity {
- TextView titleTextView;
- TextView descriptionTextView;
- TextView predescriptionTextView;
- Button getButton;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- titleTextView = (TextView) findViewById(R.id.titleTextView);
- descriptionTextView = (TextView) findViewById(R.id.description);
- predescriptionTextView = (TextView) findViewById(R.id.predescription);
- getButton = (Button) findViewById(R.id.button);
- }
- @Override
- protected void onStart() {
- super.onStart();
- Backendless.initApp(this, BackendlessConstants.appId,
- BackendlessConstants.appSecretKey, BackendlessConstants.appVersion);
- getButton.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- onUpload();
- }
- });
- }
- public void onUpload(){
- Backendless.initApp(this, BackendlessConstants.appId,
- BackendlessConstants.appSecretKey, BackendlessConstants.appVersion);
- Backendless.Persistence.mapTableToClass("Section", Map.class);
- /*Создаем список колонок таблицы Section*/
- List<String> sectionColumns = new ArrayList<>();
- sectionColumns.add("_id");
- sectionColumns.add("section");
- sectionColumns.add("columnNames");
- sectionColumns.add("rows");
- sectionColumns.add("columns");
- sectionColumns.add("title");
- /*Скачиваем только эти колонки*/
- BackendlessDataQuery dataQuery = new BackendlessDataQuery();
- dataQuery.setProperties(sectionColumns);
- Backendless.Persistence.of(Map.class).find(dataQuery, new AsyncCallback<BackendlessCollection<Map>>() {
- @Override
- public void handleResponse(BackendlessCollection<Map> mapBackendlessCollection) {
- /*Преобразуем колекцию в список Map*/
- List<Map> section = mapBackendlessCollection.getData();
- /*Получаем список ключей/колонок и убираем из него лишние*/
- Set set = section.get(0).keySet();
- set.remove("__meta");
- set.remove("___class");
- //TODO: массив не нужен
- String[] keys = new String[set.size()];
- int i = 0;
- for (Object key : set) {
- keys[i] = (String) key;
- i++;
- }
- //TODO: создать таблицу Section
- //Скачиваем другие таблицы
- for (Map table : section) {
- //Задаем имя таблицы и колонки для скачивания
- final String tableName = (String) table.get("section");
- String[] columns = ((String) table.get("columnNames")).split(",");
- BackendlessDataQuery dataQueryTable = new BackendlessDataQuery();
- for (String property : columns) {
- dataQueryTable.addProperty(property);
- }
- //Указываем на таблицу для скачивания и качаем
- Backendless.Persistence.mapTableToClass(tableName, Map.class);
- Backendless.Persistence.of(Map.class).find(dataQueryTable, new AsyncCallback<BackendlessCollection<Map>>() {
- private boolean firstResponse = true;
- @Override
- public void handleResponse(BackendlessCollection<Map> mapBackendlessCollection) {
- int collectionSize = mapBackendlessCollection.getCurrentPage().size();
- if (firstResponse) {
- Log.d("myLogs", tableName+" TOTAL: "+ mapBackendlessCollection.getTotalObjects());
- /*firstResponse=false;*/
- }
- if (collectionSize > 0){
- List<Map> table = mapBackendlessCollection.getData();
- Set tableKeys = table.get(0).keySet();
- Log.d("myLogs", "TABLE " + tableName + " size: " + table.size());
- tableKeys.remove("__meta");
- tableKeys.remove("___class");
- mapBackendlessCollection.nextPage(this);
- }
- }
- @Override
- public void handleFault(BackendlessFault backendlessFault) {
- }
- });
- }
- }
- @Override
- public void handleFault(BackendlessFault backendlessFault) {
- }
- });
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement