mirror of
https://github.com/beemdevelopment/Aegis.git
synced 2025-05-14 14:02:49 +00:00
Added itemClickListener
This commit is contained in:
parent
f11145ce95
commit
0668e0639c
3 changed files with 42 additions and 12 deletions
|
@ -2,6 +2,7 @@ package me.impy.aegis;
|
||||||
|
|
||||||
import android.graphics.Color;
|
import android.graphics.Color;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
|
import android.support.annotation.NonNull;
|
||||||
import android.support.v7.widget.CardView;
|
import android.support.v7.widget.CardView;
|
||||||
import android.support.v7.widget.RecyclerView;
|
import android.support.v7.widget.RecyclerView;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
|
@ -22,20 +23,23 @@ import java.util.Timer;
|
||||||
import java.util.TimerTask;
|
import java.util.TimerTask;
|
||||||
|
|
||||||
import me.impy.aegis.crypto.OTP;
|
import me.impy.aegis.crypto.OTP;
|
||||||
|
import me.impy.aegis.helpers.ItemClickListener;
|
||||||
|
|
||||||
public class KeyProfileAdapter extends RecyclerView.Adapter<KeyProfileAdapter.KeyProfileHolder> {
|
public class KeyProfileAdapter extends RecyclerView.Adapter<KeyProfileAdapter.KeyProfileHolder> {
|
||||||
private ArrayList<KeyProfile> mKeyProfiles;
|
private ArrayList<KeyProfile> mKeyProfiles;
|
||||||
private final List<KeyProfileHolder> lstHolders;
|
private final List<KeyProfileHolder> lstHolders;
|
||||||
|
private final ItemClickListener itemClickListener;
|
||||||
|
|
||||||
|
|
||||||
private Handler mHandler = new Handler();
|
private Handler mHandler = new Handler();
|
||||||
private Runnable updateRemainingTimeRunnable = new Runnable() {
|
private Runnable updateRemainingTimeRunnable = new Runnable() {
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
synchronized (lstHolders) {
|
synchronized (lstHolders) {
|
||||||
for (KeyProfileHolder holder : lstHolders) {
|
for (KeyProfileHolder holder : lstHolders) {
|
||||||
holder.updateCode();
|
holder.updateCode();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -45,7 +49,7 @@ public class KeyProfileAdapter extends RecyclerView.Adapter<KeyProfileAdapter.Ke
|
||||||
ImageView profileDrawable;
|
ImageView profileDrawable;
|
||||||
KeyProfile keyProfile;
|
KeyProfile keyProfile;
|
||||||
|
|
||||||
KeyProfileHolder(View itemView) {
|
KeyProfileHolder(final View itemView) {
|
||||||
super(itemView);
|
super(itemView);
|
||||||
profileName = (TextView) itemView.findViewById(R.id.profile_name);
|
profileName = (TextView) itemView.findViewById(R.id.profile_name);
|
||||||
profileCode = (TextView) itemView.findViewById(R.id.profile_code);
|
profileCode = (TextView) itemView.findViewById(R.id.profile_code);
|
||||||
|
@ -69,6 +73,8 @@ public class KeyProfileAdapter extends RecyclerView.Adapter<KeyProfileAdapter.Ke
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
this.keyProfile.Code = otp;
|
||||||
profileCode.setText(otp.substring(0, 3) + " " + otp.substring(3));
|
profileCode.setText(otp.substring(0, 3) + " " + otp.substring(3));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -87,9 +93,11 @@ public class KeyProfileAdapter extends RecyclerView.Adapter<KeyProfileAdapter.Ke
|
||||||
}
|
}
|
||||||
|
|
||||||
// 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, @NonNull ItemClickListener listener) {
|
||||||
mKeyProfiles = keyProfiles;
|
mKeyProfiles = keyProfiles;
|
||||||
lstHolders = new ArrayList<>();
|
lstHolders = new ArrayList<>();
|
||||||
|
|
||||||
|
this.itemClickListener = listener;
|
||||||
startUpdateTimer();
|
startUpdateTimer();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -111,7 +119,13 @@ public class KeyProfileAdapter extends RecyclerView.Adapter<KeyProfileAdapter.Ke
|
||||||
View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.card_keyprofile, parent, false);
|
View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.card_keyprofile, parent, false);
|
||||||
// set the view's size, margins, paddings and layout parameters
|
// set the view's size, margins, paddings and layout parameters
|
||||||
|
|
||||||
KeyProfileHolder vh = new KeyProfileHolder(v);
|
final KeyProfileHolder vh = new KeyProfileHolder(v);
|
||||||
|
v.setOnClickListener(new View.OnClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onClick(View view) {
|
||||||
|
itemClickListener.onItemClicked(vh.keyProfile, view);
|
||||||
|
}
|
||||||
|
});
|
||||||
return vh;
|
return vh;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
package me.impy.aegis;
|
package me.impy.aegis;
|
||||||
|
|
||||||
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.graphics.Color;
|
import android.graphics.Color;
|
||||||
import android.graphics.drawable.Drawable;
|
import android.graphics.drawable.Drawable;
|
||||||
|
@ -25,8 +26,9 @@ import java.util.ArrayList;
|
||||||
import me.impy.aegis.crypto.KeyInfo;
|
import me.impy.aegis.crypto.KeyInfo;
|
||||||
import me.impy.aegis.crypto.OTP;
|
import me.impy.aegis.crypto.OTP;
|
||||||
import me.impy.aegis.helpers.DividerItemDecoration;
|
import me.impy.aegis.helpers.DividerItemDecoration;
|
||||||
|
import me.impy.aegis.helpers.ItemClickListener;
|
||||||
|
|
||||||
public class MainActivity extends AppCompatActivity {
|
public class MainActivity extends AppCompatActivity {
|
||||||
|
|
||||||
static final int GET_KEYINFO = 1;
|
static final int GET_KEYINFO = 1;
|
||||||
RecyclerView rvKeyProfiles;
|
RecyclerView rvKeyProfiles;
|
||||||
|
@ -59,7 +61,15 @@ public class MainActivity extends AppCompatActivity {
|
||||||
|
|
||||||
rvKeyProfiles.addItemDecoration(new DividerItemDecoration(this, LinearLayoutManager.VERTICAL));
|
rvKeyProfiles.addItemDecoration(new DividerItemDecoration(this, LinearLayoutManager.VERTICAL));
|
||||||
|
|
||||||
mKeyProfileAdapter = new KeyProfileAdapter(mKeyProfiles);
|
final Context context = this.getApplicationContext();
|
||||||
|
ItemClickListener itemClickListener = new ItemClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onItemClicked(Object item, Object view) {
|
||||||
|
Toast.makeText(context, ((KeyProfile)item).Code, Toast.LENGTH_SHORT).show();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
mKeyProfileAdapter = new KeyProfileAdapter(mKeyProfiles, itemClickListener);
|
||||||
rvKeyProfiles.setAdapter(mKeyProfileAdapter);
|
rvKeyProfiles.setAdapter(mKeyProfileAdapter);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
package me.impy.aegis.helpers;
|
||||||
|
|
||||||
|
public interface ItemClickListener<M, V>
|
||||||
|
{
|
||||||
|
void onItemClicked(M item, V view);
|
||||||
|
}
|
Loading…
Add table
Add a link
Reference in a new issue