package com.example.xcoredemo.test;
import android.database.Cursor;
import android.net.Uri;
import android.view.View;
import by.istin.android.xcore.fragment.XListFragment;
import by.istin.android.xcore.processor.impl.GsonArrayContentValuesProcessor;
import by.istin.android.xcore.provider.ModelContract;
import by.istin.android.xcore.source.DataSourceRequest;
import com.example.xcoredemo.R;
import com.example.xcoredemo.test.bo.TestEntity;
public class DemoXListFragmentJoinedRequest extends XListFragment {
@Override
public void onListItemClick(Cursor cursor, View v, int position, long id) {
}
@Override
public int getViewLayout() {
return R.layout.fragment_demox;
}
@Override
public Uri getUri() {
return ModelContract.getUri(TestEntity.class);
}
@Override
public String getUrl() {
return "https://dl.dropboxusercontent.com/s/3c0n0ijpjjorqih/jsonarray";
}
@Override
public String getProcessorKey() {
return new GsonArrayContentValuesProcessor(TestEntity.class)
.getAppServiceKey();
}
@Override
protected String[] getAdapterColumns() {
return new String[] { TestEntity.STRING_VALUE };
}
@Override
protected int[] getAdapterControlIds() {
return new int[] { R.id.tv_id };
}
@Override
protected int getAdapterLayout() {
return R.layout.adapter_demox;
}
@Override
public DataSourceRequest createDataSourceRequest(String url, Boolean isForceUpdate, String parentRequestUri) {
DataSourceRequest dataSourceRequest = super.createDataSourceRequest(url, isForceUpdate, parentRequestUri);
String requestDataUri1 = "https://dl.dropboxusercontent.com/s/slnep5t0p6yvjr1/jsonarray1";
String requestDataUri2 = "https://dl.dropboxusercontent.com/s/xn8f9rw9034da2u/jsonarray2";
DataSourceRequest joinedDataSourceRequestPage1 = createDataSourceRequest(isForceUpdate, requestDataUri1);
DataSourceRequest joinedDataSourceRequestPage2 = createDataSourceRequest(isForceUpdate, requestDataUri2);
joinedDataSourceRequestPage1.joinRequest(joinedDataSourceRequestPage2, getProcessorKey(), getDataSourceKey());
dataSourceRequest.joinRequest(joinedDataSourceRequestPage1, getProcessorKey(), getDataSourceKey());
return dataSourceRequest;
}
private DataSourceRequest createDataSourceRequest(Boolean isForceUpdate, String requestDataUri) {
DataSourceRequest joinedDataSourceRequest = new DataSourceRequest(requestDataUri);
joinedDataSourceRequest.setCacheable(isCacheable());
joinedDataSourceRequest.setCacheExpiration(getCacheExpiration());
joinedDataSourceRequest.setForceUpdateData(isForceUpdate);
return joinedDataSourceRequest;
}
}