Commit 2d8285a1 by Kunj Gupta

Changed locally saving functionality and put refresh icon on each screen.

parent 9dde565e
...@@ -95,71 +95,6 @@ public class CatalogueVariableApiManager { ...@@ -95,71 +95,6 @@ public class CatalogueVariableApiManager {
} }
}) })
.create(); .create();
/*JSONObject catalogueJsonObject = jsonArray.getJSONObject(0);
JSONArray variableSetJsonArray = catalogueJsonObject.getJSONArray(Constants.RESPONSE_VARIABLE_SET_OBJECT_NAME);
List<CatalogueVariableSet> variableSetList = new ArrayList<>(variableSetJsonArray.length());
List<CatalogueVariable> finalVariableList = new ArrayList<>();
for (int i = 0; i < variableSetJsonArray.length(); i++) {
JSONObject variableSetJsonObject = variableSetJsonArray.getJSONObject(i);
CatalogueVariableSet catalogueVariableSet = gson.fromJson(variableSetJsonObject.toString(), CatalogueVariableSet.class);
JSONArray variableJsonArray = variableSetJsonObject.getJSONArray(Constants.RESPONSE_VARIABLES_OBJECT_NAME);
List<CatalogueVariable> variableList = new ArrayList<>(variableJsonArray.length());
for (int j = 0; j < variableJsonArray.length(); j++) {
JSONObject variableJsonObject = variableJsonArray.getJSONObject(j);
CatalogueVariable catalogueVariable = gson.fromJson(variableJsonObject.toString(), CatalogueVariable.class);
catalogueVariable.parseJson(variableJsonObject);
variableList.add(catalogueVariable);
}
Collections.sort(variableList, new Comparator<CatalogueVariable>() {
@Override
public int compare(CatalogueVariable lhs, CatalogueVariable rhs) {
return (lhs.getOrder() - rhs.getOrder());
}
});
catalogueVariableSet.setVariables(variableList);
variableSetList.add(catalogueVariableSet);
}
Collections.sort(variableSetList, new Comparator<CatalogueVariableSet>() {
@Override
public int compare(CatalogueVariableSet lhs, CatalogueVariableSet rhs) {
return (lhs.getOrder() - rhs.getOrder());
}
});
JSONArray variableJsonArray = catalogueJsonObject.getJSONArray(Constants.RESPONSE_VARIABLES_OBJECT_NAME);
List<CatalogueVariable> variableList = new ArrayList<>(variableJsonArray.length());
for (int i = 0; i < variableJsonArray.length(); i++) {
JSONObject variableJsonObject = variableJsonArray.getJSONObject(i);
CatalogueVariable catalogueVariable = gson.fromJson(variableJsonObject.toString(), CatalogueVariable.class);
catalogueVariable.parseJson(variableJsonObject);
variableList.add(catalogueVariable);
}
Collections.sort(variableList, new Comparator<CatalogueVariable>() {
@Override
public int compare(CatalogueVariable lhs, CatalogueVariable rhs) {
return (lhs.getOrder() - rhs.getOrder());
}
});
*//*For variableset *//*
for (int i = 0; i < variableSetList.size(); i++) {
CatalogueVariableSet catalogueVariableSet = variableSetList.get(i);
finalVariableList.addAll(catalogueVariableSet.getVariables());
}
*//*For variable list*//*
finalVariableList.addAll(variableList);
listener.onDoneApiCall(finalVariableList);
} else {
listener.onDoneApiCall(new ArrayList<CatalogueVariable>(0));*/
JSONObject catalogueJsonObject = jsonArray.getJSONObject(0); JSONObject catalogueJsonObject = jsonArray.getJSONObject(0);
JSONArray variableSetJsonArray = catalogueJsonObject.getJSONArray(Constants.RESPONSE_VARIABLE_SET_OBJECT_NAME); JSONArray variableSetJsonArray = catalogueJsonObject.getJSONArray(Constants.RESPONSE_VARIABLE_SET_OBJECT_NAME);
List<CatalogueVariableSet> variableSetList = new ArrayList<>(variableSetJsonArray.length()); List<CatalogueVariableSet> variableSetList = new ArrayList<>(variableSetJsonArray.length());
......
...@@ -3,6 +3,7 @@ package com.vsoft.uoflservicenow.api.managers; ...@@ -3,6 +3,7 @@ package com.vsoft.uoflservicenow.api.managers;
import android.content.ContentValues; import android.content.ContentValues;
import android.database.Cursor; import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteDatabase;
import com.vsoft.uoflservicenow.CatalogueApplication; import com.vsoft.uoflservicenow.CatalogueApplication;
import com.vsoft.uoflservicenow.db.models.VariableChoice; import com.vsoft.uoflservicenow.db.models.VariableChoice;
import com.vsoft.uoflservicenow.utils.DBConstants; import com.vsoft.uoflservicenow.utils.DBConstants;
...@@ -47,8 +48,45 @@ public class VariableChoiceManager implements DBConstants { ...@@ -47,8 +48,45 @@ public class VariableChoiceManager implements DBConstants {
} }
} }
public static void handleGetVariableChoice(long variableId, List<VariableChoice> serverVariableChoiceList) { public static boolean handleGetVariableChoice(long variableId, List<VariableChoice> serverVariableChoiceList) {
boolean hasChanged = false;
if(serverVariableChoiceList != null && !serverVariableChoiceList.isEmpty()) { if(serverVariableChoiceList != null && !serverVariableChoiceList.isEmpty()) {
List<VariableChoice> localVariableChoiceList = getAllVariableChoices(variableId);
if(!localVariableChoiceList.isEmpty()) {
for (int i = 0; i < serverVariableChoiceList.size(); i++) {
VariableChoice serverVariableChoice = serverVariableChoiceList.get(i);
for (int j = 0; j < localVariableChoiceList.size(); j++) {
VariableChoice localVariableChoice = localVariableChoiceList.get(j);
if (serverVariableChoice.getVariableId() != localVariableChoice.getVariableId()) {
continue;
} else {
if (!localVariableChoice.getValue().equals(serverVariableChoice.getValue())) {
hasChanged = true;
continue;
}
if (!localVariableChoice.getText().equals(serverVariableChoice.getText())) {
hasChanged = true;
continue;
}
if (localVariableChoice.getMisc() != serverVariableChoice.getMisc()) {
hasChanged = true;
continue;
}
if (localVariableChoice.getOrder() != serverVariableChoice.getOrder()) {
hasChanged = true;
continue;
}
}
}
}
} else {
hasChanged = true;
}
/*First delete all existing variable choice for particular variable then we will save*/ /*First delete all existing variable choice for particular variable then we will save*/
deleteAll(variableId); deleteAll(variableId);
...@@ -64,6 +102,7 @@ public class VariableChoiceManager implements DBConstants { ...@@ -64,6 +102,7 @@ public class VariableChoiceManager implements DBConstants {
/*localVariableChoiceList is contain all local Catalogues */ /*localVariableChoiceList is contain all local Catalogues */
deleteAll(variableId); deleteAll(variableId);
} }
return hasChanged;
} }
public static List<VariableChoice> getAllVariableChoices(long variableId) { public static List<VariableChoice> getAllVariableChoices(long variableId) {
......
...@@ -21,7 +21,6 @@ import java.util.List; ...@@ -21,7 +21,6 @@ import java.util.List;
public class CatalogueVariableManager implements DBConstants { public class CatalogueVariableManager implements DBConstants {
public static long save(CatalogueVariable catalogueVariable, int syncDirty) { public static long save(CatalogueVariable catalogueVariable, int syncDirty) {
CatalogueLog.e("CatalogueVariableManager: save");
SQLiteDatabase db = CatalogueApplication.getDatabase(); SQLiteDatabase db = CatalogueApplication.getDatabase();
if (db != null) { if (db != null) {
catalogueVariable.setSyncDirty(syncDirty); catalogueVariable.setSyncDirty(syncDirty);
...@@ -97,8 +96,66 @@ public class CatalogueVariableManager implements DBConstants { ...@@ -97,8 +96,66 @@ public class CatalogueVariableManager implements DBConstants {
} }
} }
public static void handleGetVariable(long catalogueItemId, List<CatalogueVariable> serverVariableList) { public static boolean handleGetVariable(long catalogueItemId, List<CatalogueVariable> serverVariableList) {
boolean hasChanged = false;
if(serverVariableList != null && !serverVariableList.isEmpty()) { if(serverVariableList != null && !serverVariableList.isEmpty()) {
/*localVariableList is contain all local catalogueVariable */
List<CatalogueVariable> localVariableList = getAllVariable(catalogueItemId);
if(!localVariableList.isEmpty()) {
for (int i = 0; i < serverVariableList.size(); i++) {
CatalogueVariable serverCatalogueVariable = serverVariableList.get(i);
for (int j = 0; j < localVariableList.size(); j++) {
CatalogueVariable localCatalogueVariable = localVariableList.get(j);
if (serverCatalogueVariable.getSysId() != localCatalogueVariable.getSysId()) {
continue;
} else {
if (!localCatalogueVariable.getName().equals(serverCatalogueVariable.getName())) {
hasChanged = true;
continue;
}
if (!localCatalogueVariable.getQuestionText().equals(serverCatalogueVariable.getQuestionText())) {
hasChanged = true;
continue;
}
if (localCatalogueVariable.getOrder() != serverCatalogueVariable.getOrder()) {
hasChanged = true;
continue;
}
if (localCatalogueVariable.getActive() != serverCatalogueVariable.getActive()) {
hasChanged = true;
continue;
}
if (localCatalogueVariable.getType().getId() != serverCatalogueVariable.getType().getId()) {
hasChanged = true;
continue;
}
if (!localCatalogueVariable.getDefaultValue().equals(serverCatalogueVariable.getDefaultValue())) {
hasChanged = true;
continue;
}
if (!localCatalogueVariable.getReferenceColumnName().equals(serverCatalogueVariable.getReferenceColumnName())) {
hasChanged = true;
continue;
}
if (!localCatalogueVariable.getReferenceTable().equals(serverCatalogueVariable.getReferenceTable())) {
hasChanged = true;
continue;
}
}
}
}
} else {
hasChanged =true;
}
/*variableSysIdMap contain all server response catalogueVariable Sys Id*/ /*variableSysIdMap contain all server response catalogueVariable Sys Id*/
HashMap<String, Integer> variableSysIdMap = new HashMap<>(0); HashMap<String, Integer> variableSysIdMap = new HashMap<>(0);
Integer intObj = Integer.valueOf(1); Integer intObj = Integer.valueOf(1);
...@@ -107,8 +164,6 @@ public class CatalogueVariableManager implements DBConstants { ...@@ -107,8 +164,6 @@ public class CatalogueVariableManager implements DBConstants {
variableSysIdMap.put(sysId, intObj); variableSysIdMap.put(sysId, intObj);
} }
/*localVariableList is contain all local catalogueVariable */
List<CatalogueVariable> localVariableList = getAllVariable(catalogueItemId);
if (localVariableList != null && !localVariableList.isEmpty()) { if (localVariableList != null && !localVariableList.isEmpty()) {
for (int i = 0; i < localVariableList.size(); i++) { for (int i = 0; i < localVariableList.size(); i++) {
CatalogueVariable localVariable = localVariableList.get(i); CatalogueVariable localVariable = localVariableList.get(i);
...@@ -160,6 +215,8 @@ public class CatalogueVariableManager implements DBConstants { ...@@ -160,6 +215,8 @@ public class CatalogueVariableManager implements DBConstants {
} }
} }
} }
return hasChanged;
} }
public static List<CatalogueVariable> getAllVariable(long catalogueItemId) { public static List<CatalogueVariable> getAllVariable(long catalogueItemId) {
......
...@@ -71,14 +71,50 @@ public class UiPolicyActionManager implements DBConstants { ...@@ -71,14 +71,50 @@ public class UiPolicyActionManager implements DBConstants {
} }
} }
public static void handleGetUiPolicyAction(List<UiPolicyAction> uiPolicyActionList, long uiPolicyItemId) { public static boolean handleGetUiPolicyAction(List<UiPolicyAction> serverUiPolicyActionList, long uiPolicyItemId) {
if(uiPolicyActionList != null && !uiPolicyActionList.isEmpty()) { boolean hasChanged = false;
if(serverUiPolicyActionList != null && !serverUiPolicyActionList.isEmpty()) {
/*localPolicyActionList is contain all local Catalogues */
List<UiPolicyAction> localPolicyActionList = getAllUiPolicyActions(uiPolicyItemId);
if(!localPolicyActionList.isEmpty()) {
for (int i = 0; i < serverUiPolicyActionList.size(); i++) {
UiPolicyAction serverUiPolicyAction = serverUiPolicyActionList.get(i);
for (int j = 0; j < localPolicyActionList.size(); j++) {
UiPolicyAction localUiPolicyAction = localPolicyActionList.get(j);
if (serverUiPolicyAction.getUiPolicyItemId() != localUiPolicyAction.getUiPolicyItemId()) {
continue;
} else {
if (!localUiPolicyAction.getMandatory().equals(serverUiPolicyAction.getMandatory())) {
hasChanged = true;
continue;
}
if (!localUiPolicyAction.getDisabled().equals(serverUiPolicyAction.getDisabled())) {
hasChanged = true;
continue;
}
if (!localUiPolicyAction.getVisible().equals(serverUiPolicyAction.getVisible())) {
hasChanged = true;
continue;
}
if (!localUiPolicyAction.getVariableName().equals(serverUiPolicyAction.getVariableName())) {
hasChanged = true;
continue;
}
}
}
}
} else {
hasChanged = true;
}
/*Check this UiPolicyItem is exist in local DB or not /*Check this UiPolicyItem is exist in local DB or not
* If doesn't exist in local, save it * If doesn't exist in local, save it
* If exist in local, update the local item with data from server item. * If exist in local, update the local item with data from server item.
* */ * */
for (int i = 0; i < uiPolicyActionList.size(); i++) { for (int i = 0; i < serverUiPolicyActionList.size(); i++) {
UiPolicyAction uiPolicyAction = uiPolicyActionList.get(i); UiPolicyAction uiPolicyAction = serverUiPolicyActionList.get(i);
uiPolicyAction.setUiPolicyItemId(uiPolicyItemId); uiPolicyAction.setUiPolicyItemId(uiPolicyItemId);
save(uiPolicyAction, DBConstants.SYNC_FLAG_NONE); save(uiPolicyAction, DBConstants.SYNC_FLAG_NONE);
} }
...@@ -93,6 +129,8 @@ public class UiPolicyActionManager implements DBConstants { ...@@ -93,6 +129,8 @@ public class UiPolicyActionManager implements DBConstants {
} }
} }
} }
return hasChanged;
} }
public static List<UiPolicyAction> getAllUiPolicyActions(long uiPolicyItemId) { public static List<UiPolicyAction> getAllUiPolicyActions(long uiPolicyItemId) {
......
...@@ -72,18 +72,39 @@ public class UiPolicyItemManager implements DBConstants { ...@@ -72,18 +72,39 @@ public class UiPolicyItemManager implements DBConstants {
} }
} }
public static void handleGetUiPolicyItem(List<UiPolicyItem> uiPolicyItemList, long catalogueItemId) { public static boolean handleGetUiPolicyItem(List<UiPolicyItem> serverUiPolicyItemList, long catalogueItemId) {
if(uiPolicyItemList != null && !uiPolicyItemList.isEmpty()) { boolean hasChanged = false;
if(serverUiPolicyItemList != null && !serverUiPolicyItemList.isEmpty()) {
/*localUiPolicyItemList is contain all local uiPolicyItem */
List<UiPolicyItem> localUiPolicyItemList = getAllUiPolicyItems(catalogueItemId);
if(!localUiPolicyItemList.isEmpty()) {
for (int i = 0; i < serverUiPolicyItemList.size(); i++) {
UiPolicyItem serverUiPolicyItem = serverUiPolicyItemList.get(i);
for (int j = 0; j < localUiPolicyItemList.size(); j++) {
UiPolicyItem localUiPolicyItem = localUiPolicyItemList.get(j);
if (serverUiPolicyItem.getSysId() != localUiPolicyItem.getSysId()) {
continue;
} else {
if (!localUiPolicyItem.getCondition().equals(serverUiPolicyItem.getCondition())) {
hasChanged = true;
continue;
}
}
}
}
} else {
hasChanged = true;
}
/*uiPolicyItemSysIdMap contain all server response uiPolicyItem Sys Id*/ /*uiPolicyItemSysIdMap contain all server response uiPolicyItem Sys Id*/
HashMap<String, Integer> uiPolicyItemSysIdMap = new HashMap<>(0); HashMap<String, Integer> uiPolicyItemSysIdMap = new HashMap<>(0);
Integer intObj = Integer.valueOf(1); Integer intObj = Integer.valueOf(1);
for (int i = 0; i < uiPolicyItemList.size(); i++) { for (int i = 0; i < serverUiPolicyItemList.size(); i++) {
String sysId = uiPolicyItemList.get(i).getSysId(); String sysId = serverUiPolicyItemList.get(i).getSysId();
uiPolicyItemSysIdMap.put(sysId, intObj); uiPolicyItemSysIdMap.put(sysId, intObj);
} }
/*localUiPolicyItemList is contain all local uiPolicyItem */
List<UiPolicyItem> localUiPolicyItemList = getAllUiPolicyItems(catalogueItemId);
if (localUiPolicyItemList != null && !localUiPolicyItemList.isEmpty()) { if (localUiPolicyItemList != null && !localUiPolicyItemList.isEmpty()) {
for (int i = 0; i < localUiPolicyItemList.size(); i++) { for (int i = 0; i < localUiPolicyItemList.size(); i++) {
UiPolicyItem localUiPolicyItem = localUiPolicyItemList.get(i); UiPolicyItem localUiPolicyItem = localUiPolicyItemList.get(i);
...@@ -103,8 +124,8 @@ public class UiPolicyItemManager implements DBConstants { ...@@ -103,8 +124,8 @@ public class UiPolicyItemManager implements DBConstants {
* If doesn't exist in local, save it * If doesn't exist in local, save it
* If exist in local, update the local item with data from server item. * If exist in local, update the local item with data from server item.
* */ * */
for (int i = 0; i < uiPolicyItemList.size(); i++) { for (int i = 0; i < serverUiPolicyItemList.size(); i++) {
UiPolicyItem uiPolicyItem = uiPolicyItemList.get(i); UiPolicyItem uiPolicyItem = serverUiPolicyItemList.get(i);
UiPolicyItem localUiPolicyItem = getUiPolicyItemFromSysId(uiPolicyItem.getSysId()); UiPolicyItem localUiPolicyItem = getUiPolicyItemFromSysId(uiPolicyItem.getSysId());
if (localUiPolicyItem == null) { if (localUiPolicyItem == null) {
...@@ -135,6 +156,8 @@ public class UiPolicyItemManager implements DBConstants { ...@@ -135,6 +156,8 @@ public class UiPolicyItemManager implements DBConstants {
} }
} }
} }
return hasChanged;
} }
public static List<UiPolicyItem> getAllUiPolicyItems(long catalogueItemId) { public static List<UiPolicyItem> getAllUiPolicyItems(long catalogueItemId) {
......
...@@ -12,7 +12,9 @@ import android.support.v7.widget.Toolbar; ...@@ -12,7 +12,9 @@ import android.support.v7.widget.Toolbar;
import android.view.MenuItem; import android.view.MenuItem;
import android.view.View; import android.view.View;
import android.widget.AdapterView; import android.widget.AdapterView;
import android.widget.ImageView;
import android.widget.ListView; import android.widget.ListView;
import android.widget.ProgressBar;
import android.widget.TextView; import android.widget.TextView;
import com.google.android.gms.analytics.Tracker; import com.google.android.gms.analytics.Tracker;
...@@ -37,6 +39,7 @@ import java.util.List; ...@@ -37,6 +39,7 @@ import java.util.List;
import butterknife.BindView; import butterknife.BindView;
import butterknife.ButterKnife; import butterknife.ButterKnife;
import butterknife.OnClick;
/** /**
* Created by Kunj on 11/8/16. * Created by Kunj on 11/8/16.
...@@ -46,8 +49,12 @@ public class CatalogueItemScreen extends AppCompatActivity { ...@@ -46,8 +49,12 @@ public class CatalogueItemScreen extends AppCompatActivity {
@BindView(R.id.tool_bar_view) Toolbar mToolbar; @BindView(R.id.tool_bar_view) Toolbar mToolbar;
@BindView(R.id.catalogue_item_screen_list_view) ListView mListView; @BindView(R.id.catalogue_item_screen_list_view) ListView mListView;
@BindView(R.id.catalogue_item_screen_empty_text_view) TextView mEmptyTextView; @BindView(R.id.catalogue_item_screen_empty_text_view) TextView mEmptyTextView;
@BindView(R.id.toolbar_refresh_icon) ImageView mRefreshIcon;
@BindView(R.id.toolbar_progress_icon) ProgressBar mProgressBar;
private Catalogue mCatalogue; private Catalogue mCatalogue;
private boolean isProgressRequire;
private CatalogueApplication mApplication;
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
...@@ -57,7 +64,7 @@ public class CatalogueItemScreen extends AppCompatActivity { ...@@ -57,7 +64,7 @@ public class CatalogueItemScreen extends AppCompatActivity {
setContentView(R.layout.catalogue_item_screen); setContentView(R.layout.catalogue_item_screen);
ButterKnife.bind(this); ButterKnife.bind(this);
CatalogueApplication application = (CatalogueApplication) getApplication(); mApplication = (CatalogueApplication) getApplication();
String catalogueSysId = getIntent().getExtras().getString(Constants.DATA_KEY_SYS_ID); String catalogueSysId = getIntent().getExtras().getString(Constants.DATA_KEY_SYS_ID);
String catalogueTitle = getIntent().getExtras().getString(Constants.DATA_KEY_CATALOGUE_TITLE); String catalogueTitle = getIntent().getExtras().getString(Constants.DATA_KEY_CATALOGUE_TITLE);
...@@ -82,19 +89,27 @@ public class CatalogueItemScreen extends AppCompatActivity { ...@@ -82,19 +89,27 @@ public class CatalogueItemScreen extends AppCompatActivity {
actionBar.setDisplayShowTitleEnabled(true); actionBar.setDisplayShowTitleEnabled(true);
} }
Tracker tracker = application.getDefaultTracker(); Tracker tracker = mApplication.getDefaultTracker();
// Send initial screen view hit. // Send initial screen view hit.
Util.sendScreenName(tracker, actionBar.getTitle().toString()); Util.sendScreenName(tracker, actionBar.getTitle().toString());
if(application.isNetConnected()) { List<CatalogueItem> catalogueItemList = CatalogueItemManager.getAllCatalogueItems(mCatalogue.getId());
if(!catalogueItemList.isEmpty()) {
setData(catalogueItemList);
}
if(mApplication.isNetConnected()) {
isProgressRequire = catalogueItemList.isEmpty();
new FetchCatalogueItem().execute();
}
}
@OnClick(R.id.toolbar_refresh_icon)
void onRefreshClicked() {
if(mApplication.isNetConnected()) {
new FetchCatalogueItem().execute(); new FetchCatalogueItem().execute();
} else { } else {
List<CatalogueItem> catalogueItemList = CatalogueItemManager.getAllCatalogueItems(mCatalogue.getId()); DialogUtils.showNoConnectionDialogWithCloseActivity(CatalogueItemScreen.this);
if(catalogueItemList.isEmpty()) {
DialogUtils.showNoConnectionDialogWithCloseActivity(CatalogueItemScreen.this);
} else {
setData(catalogueItemList);
}
} }
} }
...@@ -105,10 +120,15 @@ public class CatalogueItemScreen extends AppCompatActivity { ...@@ -105,10 +120,15 @@ public class CatalogueItemScreen extends AppCompatActivity {
@Override @Override
protected void onPreExecute() { protected void onPreExecute() {
super.onPreExecute(); super.onPreExecute();
progressDialog = new ProgressDialog(CatalogueItemScreen.this); if(isProgressRequire) {
progressDialog.setMessage(getString(R.string.loading_string)); progressDialog = new ProgressDialog(CatalogueItemScreen.this);
progressDialog.show(); progressDialog.setMessage(getString(R.string.loading_string));
progressDialog.setCancelable(false); progressDialog.show();
progressDialog.setCancelable(false);
} else {
mRefreshIcon.setVisibility(View.GONE);
mProgressBar.setVisibility(View.VISIBLE);
}
} }
@Override @Override
...@@ -117,7 +137,6 @@ public class CatalogueItemScreen extends AppCompatActivity { ...@@ -117,7 +137,6 @@ public class CatalogueItemScreen extends AppCompatActivity {
@Override @Override
public void onDoneApiCall(List<CatalogueItem> catalogueItemList) { public void onDoneApiCall(List<CatalogueItem> catalogueItemList) {
syncStatus = SyncStatus.SUCCESS; syncStatus = SyncStatus.SUCCESS;
CatalogueLog.e("Data: catalogueItemList: "+catalogueItemList);
CatalogueItemManager.handleGetCatalogueItem(mCatalogue.getId(), catalogueItemList); CatalogueItemManager.handleGetCatalogueItem(mCatalogue.getId(), catalogueItemList);
} }
...@@ -134,9 +153,14 @@ public class CatalogueItemScreen extends AppCompatActivity { ...@@ -134,9 +153,14 @@ public class CatalogueItemScreen extends AppCompatActivity {
super.onPostExecute(syncStatus); super.onPostExecute(syncStatus);
if(progressDialog != null && progressDialog.isShowing()) { if(progressDialog != null && progressDialog.isShowing()) {
progressDialog.dismiss(); progressDialog.dismiss();
} else {
mRefreshIcon.setVisibility(View.VISIBLE);
mProgressBar.setVisibility(View.GONE);
} }
if(syncStatus == SyncStatus.SUCCESS) { if(syncStatus == SyncStatus.SUCCESS) {
setData(CatalogueItemManager.getAllCatalogueItems(mCatalogue.getId())); List<CatalogueItem> catalogueItemList = CatalogueItemManager.getAllCatalogueItems(mCatalogue.getId());
isProgressRequire = catalogueItemList.isEmpty();
setData(catalogueItemList);
} else { } else {
showErrorDialog(R.string.failed_to_fetch_catalogue_category_items_string); showErrorDialog(R.string.failed_to_fetch_catalogue_category_items_string);
} }
......
...@@ -12,7 +12,9 @@ import android.support.v7.widget.Toolbar; ...@@ -12,7 +12,9 @@ import android.support.v7.widget.Toolbar;
import android.view.MenuItem; import android.view.MenuItem;
import android.view.View; import android.view.View;
import android.widget.AdapterView; import android.widget.AdapterView;
import android.widget.ImageView;
import android.widget.ListView; import android.widget.ListView;
import android.widget.ProgressBar;
import com.google.android.gms.analytics.Tracker; import com.google.android.gms.analytics.Tracker;
import com.vsoft.uoflservicenow.CatalogueApplication; import com.vsoft.uoflservicenow.CatalogueApplication;
...@@ -34,6 +36,7 @@ import java.util.List; ...@@ -34,6 +36,7 @@ import java.util.List;
import butterknife.BindView; import butterknife.BindView;
import butterknife.ButterKnife; import butterknife.ButterKnife;
import butterknife.OnClick;
/** /**
* Created by Kunj on 11/8/16. * Created by Kunj on 11/8/16.
...@@ -42,6 +45,12 @@ public class CatalogueScreen extends AppCompatActivity { ...@@ -42,6 +45,12 @@ public class CatalogueScreen extends AppCompatActivity {
@BindView(R.id.tool_bar_view) Toolbar mToolbar; @BindView(R.id.tool_bar_view) Toolbar mToolbar;
@BindView(R.id.catalogue_screen_list_view) ListView mListView; @BindView(R.id.catalogue_screen_list_view) ListView mListView;
@BindView(R.id.toolbar_refresh_icon) ImageView mRefreshIcon;
@BindView(R.id.toolbar_progress_icon) ProgressBar mProgressBar;
/*isProgressRequire variable is use for showing progress bar in middle of screen during fetch data from server*/
private boolean isProgressRequire;
private CatalogueApplication mApplication;
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
...@@ -51,7 +60,7 @@ public class CatalogueScreen extends AppCompatActivity { ...@@ -51,7 +60,7 @@ public class CatalogueScreen extends AppCompatActivity {
setContentView(R.layout.catalogue_screen); setContentView(R.layout.catalogue_screen);
ButterKnife.bind(this); ButterKnife.bind(this);
CatalogueApplication application = (CatalogueApplication) getApplication(); mApplication = (CatalogueApplication) getApplication();
setSupportActionBar(mToolbar); setSupportActionBar(mToolbar);
ActionBar actionBar = getSupportActionBar(); ActionBar actionBar = getSupportActionBar();
...@@ -63,19 +72,27 @@ public class CatalogueScreen extends AppCompatActivity { ...@@ -63,19 +72,27 @@ public class CatalogueScreen extends AppCompatActivity {
actionBar.setDisplayShowTitleEnabled(true); actionBar.setDisplayShowTitleEnabled(true);
} }
Tracker tracker = application.getDefaultTracker(); Tracker tracker = mApplication.getDefaultTracker();
// Send initial screen view hit. // Send initial screen view hit.
Util.sendScreenName(tracker, actionBar.getTitle().toString()); Util.sendScreenName(tracker, actionBar.getTitle().toString());
if(application.isNetConnected()) { List<Catalogue> catalogueList = CatalogueManager.getAllCatalogues();
if(!catalogueList.isEmpty()) {
setData(catalogueList);
}
if(mApplication.isNetConnected()) {
isProgressRequire = catalogueList.isEmpty();
new FetchCatalogue().execute();
}
}
@OnClick(R.id.toolbar_refresh_icon)
void onRefreshClicked() {
if(mApplication.isNetConnected()) {
new FetchCatalogue().execute(); new FetchCatalogue().execute();
} else { } else {
List<Catalogue> catalogueList = CatalogueManager.getAllCatalogues(); DialogUtils.showNoConnectionDialogWithCloseActivity(CatalogueScreen.this);
if(!catalogueList.isEmpty()) {
setData(catalogueList);
} else {
DialogUtils.showNoConnectionDialogWithCloseActivity(CatalogueScreen.this);
}
} }
} }
...@@ -86,10 +103,15 @@ public class CatalogueScreen extends AppCompatActivity { ...@@ -86,10 +103,15 @@ public class CatalogueScreen extends AppCompatActivity {
@Override @Override
protected void onPreExecute() { protected void onPreExecute() {
super.onPreExecute(); super.onPreExecute();
progressDialog = new ProgressDialog(CatalogueScreen.this); if(isProgressRequire) {
progressDialog.setMessage(getString(R.string.loading_string)); progressDialog = new ProgressDialog(CatalogueScreen.this);
progressDialog.show(); progressDialog.setMessage(getString(R.string.loading_string));
progressDialog.setCancelable(false); progressDialog.show();
progressDialog.setCancelable(false);
} else {
mRefreshIcon.setVisibility(View.GONE);
mProgressBar.setVisibility(View.VISIBLE);
}
} }
@Override @Override
...@@ -98,7 +120,6 @@ public class CatalogueScreen extends AppCompatActivity { ...@@ -98,7 +120,6 @@ public class CatalogueScreen extends AppCompatActivity {
@Override @Override
public void onDoneApiCall(List<Catalogue> catalogueList) { public void onDoneApiCall(List<Catalogue> catalogueList) {
syncStatus = SyncStatus.SUCCESS; syncStatus = SyncStatus.SUCCESS;
CatalogueLog.e("Data: catalogueList: "+catalogueList);
CatalogueManager.handleGetCatalogue(catalogueList); CatalogueManager.handleGetCatalogue(catalogueList);
} }
...@@ -115,9 +136,14 @@ public class CatalogueScreen extends AppCompatActivity { ...@@ -115,9 +136,14 @@ public class CatalogueScreen extends AppCompatActivity {
super.onPostExecute(syncStatus); super.onPostExecute(syncStatus);
if(progressDialog != null && progressDialog.isShowing()) { if(progressDialog != null && progressDialog.isShowing()) {
progressDialog.dismiss(); progressDialog.dismiss();
} else {
mRefreshIcon.setVisibility(View.VISIBLE);
mProgressBar.setVisibility(View.GONE);
} }
if(syncStatus == SyncStatus.SUCCESS) { if(syncStatus == SyncStatus.SUCCESS) {
setData(CatalogueManager.getAllCatalogues()); List<Catalogue> catalogueList = CatalogueManager.getAllCatalogues();
isProgressRequire = catalogueList.isEmpty();
setData(catalogueList);
} else { } else {
showErrorDialog(R.string.failed_to_fetch_catalogue_category_string); showErrorDialog(R.string.failed_to_fetch_catalogue_category_string);
} }
......
package com.vsoft.uoflservicenow.utils; package com.vsoft.uoflservicenow.utils;
import android.app.Activity;
import android.content.Context; import android.content.Context;
import android.content.DialogInterface; import android.content.DialogInterface;
import android.content.Intent; import android.content.Intent;
...@@ -45,14 +44,13 @@ public class DialogUtils { ...@@ -45,14 +44,13 @@ public class DialogUtils {
@Override @Override
public void onClick(DialogInterface dialog, int id) { public void onClick(DialogInterface dialog, int id) {
context.startActivity(new Intent(android.provider.Settings.ACTION_SETTINGS)); context.startActivity(new Intent(android.provider.Settings.ACTION_SETTINGS));
((Activity)context).finish();
} }
}) })
.setNegativeButton(context.getString(R.string.cancel), .setNegativeButton(context.getString(R.string.cancel),
new DialogInterface.OnClickListener() { new DialogInterface.OnClickListener() {
@Override @Override
public void onClick(DialogInterface dialog, int which) { public void onClick(DialogInterface dialog, int which) {
((Activity)context).finish(); dialog.dismiss();
} }
}); });
AlertDialog alert = builder.create(); AlertDialog alert = builder.create();
......
<?xml version="1.0" encoding="utf-8"?>
<rotate xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="1"
android:fromDegrees="0"
android:pivotX="50%"
android:pivotY="50%"
android:drawable="@drawable/refresh_icon"
android:toDegrees="1080">
</rotate>
\ No newline at end of file
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android" <android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/tool_bar_view" android:id="@+id/tool_bar_view"
style="@style/WhiteBackgroundStyle"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_margin="0dp" android:layout_margin="0dp"
...@@ -10,5 +11,26 @@ ...@@ -10,5 +11,26 @@
app:contentInsetEnd="0dp" app:contentInsetEnd="0dp"
app:contentInsetLeft="0dp" app:contentInsetLeft="0dp"
app:contentInsetRight="0dp" app:contentInsetRight="0dp"
app:contentInsetStart="0dp" app:contentInsetStart="0dp">
style="@style/WhiteBackgroundStyle"/>
\ No newline at end of file <RelativeLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="right">
<ImageView
android:id="@+id/toolbar_refresh_icon"
android:layout_width="@dimen/uofl_tool_bar_refresh_button_width"
android:layout_height="@dimen/uofl_tool_bar_refresh_button_height"
android:src="@drawable/refresh_icon" />
<ProgressBar
android:id="@+id/toolbar_progress_icon"
android:layout_width="@dimen/uofl_tool_bar_refresh_button_width"
android:layout_height="@dimen/uofl_tool_bar_refresh_button_height"
android:indeterminate="false"
android:indeterminateDrawable="@drawable/circular"
android:visibility="gone" />
</RelativeLayout>
</android.support.v7.widget.Toolbar>
\ No newline at end of file
...@@ -38,4 +38,9 @@ ...@@ -38,4 +38,9 @@
<!--Report Incident screen--> <!--Report Incident screen-->
<dimen name="impact_spinner_drop_down_height">50dp</dimen> <dimen name="impact_spinner_drop_down_height">50dp</dimen>
<!--Action bar refresh icon size-->
<dimen name="progress_bar_padding_size">13dp</dimen>
<dimen name="uofl_tool_bar_refresh_button_width">40dp</dimen>
<dimen name="uofl_tool_bar_refresh_button_height">40dp</dimen>
</resources> </resources>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment