This commit is contained in:
Amab 2019-11-05 19:58:42 +01:00
parent 0126888e10
commit 66ac1feee5
4 changed files with 254 additions and 225 deletions

View File

@ -59,7 +59,7 @@ public class Rollcall extends MenuExpandableListActivity implements
/**
* ListView of events
*/
private static ListView lvEvents;
private ListView lvEvents;
/**
* Adapter for ListView of events
*/
@ -133,14 +133,14 @@ public class Rollcall extends MenuExpandableListActivity implements
super.onCreate(savedInstanceState);
setContentView(R.layout.list_items_pulltorefresh);
refreshLayout = (SwipeRefreshLayout) findViewById(R.id.swipe_container_list);
emptyEventsTextView = (TextView) findViewById(R.id.list_item_title);
refreshLayout = findViewById(R.id.swipe_container_list);
emptyEventsTextView = findViewById(R.id.list_item_title);
View mProgressScreenView = findViewById(R.id.progress_screen);
mProgressScreen = new ProgressScreen(mProgressScreenView, refreshLayout,
getString(R.string.loadingMsg), this);
lvEvents = (ListView) findViewById(R.id.list_pulltorefresh);
lvEvents = findViewById(R.id.list_pulltorefresh);
lvEvents.setOnItemClickListener(clickListener);
lvEvents.setOnScrollListener(new AbsListView.OnScrollListener() {
@ -191,6 +191,7 @@ public class Rollcall extends MenuExpandableListActivity implements
refreshAdapter();
break;
}
super.onActivityResult(requestCode, resultCode, intent);
}
private void refreshAdapter() {
@ -232,7 +233,7 @@ public class Rollcall extends MenuExpandableListActivity implements
if ((lvEvents != null) && (lvEvents.getChildCount() > 0)) {
while(!hasPendingEvents && (i<lvEvents.getChildCount())) {
sendingStateTextView = (TextView) lvEvents.getChildAt(i).findViewById(R.id.sendingStateTextView);
sendingStateTextView = lvEvents.getChildAt(i).findViewById(R.id.sendingStateTextView);
hasPendingEvents = sendingStateTextView.getText().equals(getString(R.string.sendingStatePending));
i++;
}

View File

@ -74,7 +74,7 @@ public class UsersActivity extends MenuExpandableListActivity implements
/**
* ListView of users
*/
private static ListView lvUsers;
private ListView lvUsers;
/**
* Adapter for ListView of users
*/
@ -105,6 +105,16 @@ public class UsersActivity extends MenuExpandableListActivity implements
*/
private IntentIntegrator integrator;
/**
* Button for send attendances to SWAD
*/
private MenuItem mSendUsersMenuItem;
/**
* Button for clear all users for an event
*/
private MenuItem mCleanUsersMenuItem;
/* (non-Javadoc)
* @see es.ugr.swad.swadroid.MenuExpandableListActivity#onCreate(android.os.Bundle)
*/
@ -113,14 +123,14 @@ public class UsersActivity extends MenuExpandableListActivity implements
super.onCreate(savedInstanceState);
setContentView(R.layout.list_items_pulltorefresh);
refreshLayout = (SwipeRefreshLayout) findViewById(R.id.swipe_container_list);
emptyUsersTextView = (TextView) findViewById(R.id.list_item_title);
refreshLayout = findViewById(R.id.swipe_container_list);
emptyUsersTextView = findViewById(R.id.list_item_title);
View mProgressScreenView = findViewById(R.id.progress_screen);
mProgressScreen = new ProgressScreen(mProgressScreenView, refreshLayout,
getString(R.string.loadingMsg), this);
lvUsers = (ListView) findViewById(R.id.list_pulltorefresh);
lvUsers = findViewById(R.id.list_pulltorefresh);
lvUsers.setOnScrollListener(new AbsListView.OnScrollListener() {
@Override
@ -165,6 +175,9 @@ public class UsersActivity extends MenuExpandableListActivity implements
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
refreshAdapter();
setActionMenuItemsEnabled(true);
super.onActivityResult(requestCode, resultCode, intent);
}
private void refreshAdapter() {
@ -243,39 +256,50 @@ public class UsersActivity extends MenuExpandableListActivity implements
*/
@Override
public void onRefresh() {
setActionMenuItemsEnabled(false);
showSwipeProgress();
refreshUsers();
hideSwipeProgress();
setActionMenuItemsEnabled(true);
}
private String getUsersCodes() {
String usersCodes = "";
StringBuilder usersCodes = new StringBuilder();
List<UserAttendance> usersList = dbHelper.getUsersEvent(eventCode);
//Concatenate the user code of all users checked as present and separate them with commas
for(UserAttendance user : usersList) {
if(user.isUserPresent()) {
usersCodes += user.getId() + ",";
usersCodes.append(user.getId()).append(",");
}
}
//Remove final comma
if(!usersCodes.isEmpty()) {
usersCodes = usersCodes.substring(0, usersCodes.length()-1);
if(usersCodes.length() > 0) {
usersCodes = new StringBuilder(usersCodes.substring(0, usersCodes.length() - 1));
}
return usersCodes;
return usersCodes.toString();
}
private void scanQRCode() {
integrator.initiateScan();
}
private void setActionMenuItemsEnabled(boolean enabled) {
mSendUsersMenuItem.setEnabled(enabled);
mCleanUsersMenuItem.setEnabled(enabled);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.rollcall_activity_actions, menu);
mSendUsersMenuItem = menu.findItem(R.id.action_sendMsg);
mCleanUsersMenuItem = menu.findItem(R.id.action_cleanUsers);
return super.onCreateOptionsMenu(menu);
}
@ -302,6 +326,8 @@ public class UsersActivity extends MenuExpandableListActivity implements
return true;
case R.id.action_sendMsg:
setActionMenuItemsEnabled(false);
String usersCodes = getUsersCodes();
Intent activity = new Intent(getApplicationContext(),
@ -318,6 +344,8 @@ public class UsersActivity extends MenuExpandableListActivity implements
return true;
case R.id.action_cleanUsers:
setActionMenuItemsEnabled(false);
AlertDialog cleanDBDialog = DialogFactory.createWarningDialog(this,
-1,
R.string.areYouSure,
@ -358,7 +386,7 @@ public class UsersActivity extends MenuExpandableListActivity implements
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String permissions[],
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions,
@NonNull int[] grantResults) {
switch (requestCode) {
case Constants.PERMISSIONS_REQUEST_CAMERA: {

View File

@ -127,10 +127,10 @@ public class UsersCursorAdapter extends CursorAdapter {
final ViewHolder holder = (ViewHolder) view.getTag();
view.setTag(holder);
holder.image = (ImageView) view.findViewById(R.id.imageView1);
holder.text1 = (TextView) view.findViewById(R.id.TextView1);
holder.text2 = (TextView) view.findViewById(R.id.TextView2);
holder.checkbox = (CheckBox) view.findViewById(R.id.check);
holder.image = view.findViewById(R.id.imageView1);
holder.text1 = view.findViewById(R.id.TextView1);
holder.text2 = view.findViewById(R.id.TextView2);
holder.checkbox = view.findViewById(R.id.check);
holder.checkbox.setChecked(present);
holder.checkbox.setOnClickListener(new View.OnClickListener() {
@ -157,7 +157,7 @@ public class UsersCursorAdapter extends CursorAdapter {
ImageFactory.displayImage(loader, crypto.decrypt(userPhoto), holder.image);
}
holder.text1.setText(userSurname1 + " " + userSurname2 + ", " + userFirstname);
holder.text1.setText(String.format("%s %s, %s", userSurname1, userSurname2, userFirstname));
holder.text2.setText(userID);
}
@ -166,10 +166,10 @@ public class UsersCursorAdapter extends CursorAdapter {
View view = inflater.inflate(R.layout.users_list_item, parent, false);
ViewHolder holder = new ViewHolder();
holder.image = (ImageView) view.findViewById(R.id.imageView1);
holder.text1 = (TextView) view.findViewById(R.id.TextView1);
holder.text2 = (TextView) view.findViewById(R.id.TextView2);
holder.checkbox = (CheckBox) view.findViewById(R.id.check);
holder.image = view.findViewById(R.id.imageView1);
holder.text1 = view.findViewById(R.id.TextView1);
holder.text2 = view.findViewById(R.id.TextView2);
holder.checkbox = view.findViewById(R.id.check);
view.setTag(holder);
return view;

View File

@ -153,7 +153,7 @@ public class UsersDownload extends Module {
if (numUsers == 0) {
Toast.makeText(this, R.string.noUsersAvailableMsg, Toast.LENGTH_LONG).show();
} else {
String msg = String.valueOf(numUsers) + " " + getResources().getString(R.string.usersUpdated);
String msg = numUsers + " " + getResources().getString(R.string.usersUpdated);
Toast.makeText(this, msg, Toast.LENGTH_LONG).show();
}