private static interface OnTickListener {
public void tick(ProgressBar pb);
}
-
- private Map<ProgressBar, OnTickListener> map = new HashMap<ProgressBar, OnTickListener>();
-
+
+ private final Map<ProgressBar, OnTickListener> map = new HashMap<ProgressBar, OnTickListener>();
+
@Override
public void handleMessage(Message msg) {
for (ProgressBar pb : map.keySet())
map.get(pb).tick(pb);
-
+
sendEmptyMessageDelayed(0, 200);
}
-
+
public void set(ProgressBar pb, OnTickListener otl) {
map.put(pb, otl);
}
}
-
- private List<Token> tokens = new ArrayList<Token>();
- private Ticker ticker = new Ticker();
-
+
+ private final List<Token> tokens = new ArrayList<Token>();
+ private final Ticker ticker = new Ticker();
+
private void sort() {
Collections.sort(tokens, new Comparator<Token>() {
+ @Override
public int compare(Token lhs, Token rhs) {
return lhs.getTitle().compareTo(rhs.getTitle());
}
});
}
-
+
public TokenAdapter(Context ctx) {
tokens.addAll(Token.getTokens(ctx));
ticker.sendEmptyMessageDelayed(0, 200);
sort();
}
-
+
@Override
public int getCount() {
return tokens.size();
@Override
public View getView(int position, View convertView, ViewGroup parent) {
final Context ctx = parent.getContext();
-
+
if (convertView == null) {
switch (getItem(position).getType()) {
case HOTP:
convertView = View.inflate(ctx, R.layout.hotp, null);
break;
-
+
case TOTP:
convertView = View.inflate(ctx, R.layout.totp, null);
break;
}
}
-
+
final Token item = getItem(position);
final TextView code = (TextView) convertView.findViewById(R.id.code);
final TextView title = (TextView) convertView.findViewById(R.id.title);
final ImageButton ib = (ImageButton) convertView.findViewById(R.id.button);
-
+
code.setText(item.getCurrentTokenValue(ctx, false));
title.setText(item.getTitle());
-
+
ib.setOnClickListener(new OnClickListener() {
+ @Override
public void onClick(View v) {
String delmsg = ctx.getString(R.string.delete_message);
.setIcon(android.R.drawable.ic_delete)
.setPositiveButton(R.string.delete,
new DialogInterface.OnClickListener() {
+ @Override
public void onClick(DialogInterface dialog, int which) {
tokens.remove(tokens.indexOf(item));
item.remove(ctx);
notifyDataSetChanged();
dialog.dismiss();
}
-
+
})
.setNegativeButton(android.R.string.cancel,
new DialogInterface.OnClickListener() {
+ @Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
case HOTP:
ImageButton hotp = (ImageButton) convertView.findViewById(R.id.hotpButton);
hotp.setOnClickListener(new OnClickListener() {
+ @Override
public void onClick(View v) {
code.setText(item.getCurrentTokenValue(ctx, true));
}
});
break;
-
+
case TOTP:
ProgressBar pb = (ProgressBar) convertView.findViewById(R.id.totpProgressBar);
ticker.set(pb, new Ticker.OnTickListener() {
+ @Override
public void tick(ProgressBar pb) {
int max = pb.getMax();
int pro = item.getProgress();
});
break;
}
-
+
return convertView;
}
-
+
@Override
public int getViewTypeCount() {
return 2;
}
-
+
@Override
public int getItemViewType(int position) {
switch (getItem(position).getType()) {
return -1;
}
}
-
+
public void add(Context ctx, String uri) throws NoSuchAlgorithmException, TokenUriInvalidException {
Token t = new Token(uri);
t.save(ctx);