|
|
@ -19,8 +19,6 @@ import java.util.ArrayList;
|
|
|
|
import java.util.Collections;
|
|
|
|
import java.util.Collections;
|
|
|
|
import java.util.Comparator;
|
|
|
|
import java.util.Comparator;
|
|
|
|
import java.util.List;
|
|
|
|
import java.util.List;
|
|
|
|
import java.util.Timer;
|
|
|
|
|
|
|
|
import java.util.TimerTask;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import me.impy.aegis.crypto.OTP;
|
|
|
|
import me.impy.aegis.crypto.OTP;
|
|
|
|
import me.impy.aegis.db.Database;
|
|
|
|
import me.impy.aegis.db.Database;
|
|
|
@ -29,14 +27,12 @@ import me.impy.aegis.helpers.ItemTouchHelperAdapter;
|
|
|
|
public class KeyProfileAdapter extends RecyclerView.Adapter<KeyProfileAdapter.KeyProfileHolder> implements ItemTouchHelperAdapter {
|
|
|
|
public class KeyProfileAdapter extends RecyclerView.Adapter<KeyProfileAdapter.KeyProfileHolder> implements ItemTouchHelperAdapter {
|
|
|
|
private final List<KeyProfileHolder> lstHolders;
|
|
|
|
private final List<KeyProfileHolder> lstHolders;
|
|
|
|
private ArrayList<KeyProfile> mKeyProfiles;
|
|
|
|
private ArrayList<KeyProfile> mKeyProfiles;
|
|
|
|
private Timer timer;
|
|
|
|
|
|
|
|
private Handler uiHandler;
|
|
|
|
private Handler uiHandler;
|
|
|
|
|
|
|
|
|
|
|
|
// Provide a suitable constructor (depends on the kind of dataset)
|
|
|
|
// Provide a suitable constructor (depends on the kind of dataset)
|
|
|
|
public KeyProfileAdapter(ArrayList<KeyProfile> keyProfiles) {
|
|
|
|
public KeyProfileAdapter(ArrayList<KeyProfile> keyProfiles) {
|
|
|
|
mKeyProfiles = keyProfiles;
|
|
|
|
mKeyProfiles = keyProfiles;
|
|
|
|
lstHolders = new ArrayList<>();
|
|
|
|
lstHolders = new ArrayList<>();
|
|
|
|
timer = new Timer();
|
|
|
|
|
|
|
|
uiHandler = new Handler();
|
|
|
|
uiHandler = new Handler();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
@ -93,20 +89,18 @@ public class KeyProfileAdapter extends RecyclerView.Adapter<KeyProfileAdapter.Ke
|
|
|
|
holder.updateCode();
|
|
|
|
holder.updateCode();
|
|
|
|
lstHolders.add(holder);
|
|
|
|
lstHolders.add(holder);
|
|
|
|
|
|
|
|
|
|
|
|
timer.schedule(new TimerTask() {
|
|
|
|
Runnable runnable = new Runnable() {
|
|
|
|
@Override
|
|
|
|
|
|
|
|
public void run() {
|
|
|
|
|
|
|
|
uiHandler.post(new Runnable() {
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public void run() {
|
|
|
|
public void run() {
|
|
|
|
// check if this key profile still exists
|
|
|
|
// check if this key profile still exists
|
|
|
|
if (lstHolders.contains(holder)) {
|
|
|
|
if (lstHolders.contains(holder)) {
|
|
|
|
holder.updateCode();
|
|
|
|
holder.updateCode();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
uiHandler.postDelayed(this, holder.keyProfile.Info.getPeriod() * 1000);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
});
|
|
|
|
};
|
|
|
|
}
|
|
|
|
uiHandler.postDelayed(runnable, holder.keyProfile.Info.getMillisTillNextRotation());
|
|
|
|
}, holder.keyProfile.Info.getMillisTillNextRotation(), holder.keyProfile.Info.getPeriod() * 1000);
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// Return the size of your dataset (invoked by the layout manager)
|
|
|
|
// Return the size of your dataset (invoked by the layout manager)
|
|
|
|