import net.ktnx.mobileledger.ui.profiles.ProfileDetailFragment;
import java.util.Collections;
-import java.util.Observable;
-import java.util.Observer;
/**
* An activity representing a list of Profiles. This activity
recyclerView.setOnFlingListener(new RecyclerView.OnFlingListener() {
@Override
public boolean onFling(int dX, int dY) {
- Log.d("tmp", String.format("fling %d %d", dX, dY));
+// Log.d("tmp", String.format("fling %d %d", dX, dY));
if (dY > 0) fab.hide();
if (dY < 0) fab.show();
return false;
View view = LayoutInflater.from(parent.getContext())
.inflate(R.layout.profile_list_content, parent, false);
ProfileListViewHolder holder = new ProfileListViewHolder(view);
- Data.profile.addObserver((o, arg) -> {
- MobileLedgerProfile newProfile = Data.profile.get();
+
+ holder.mRadioView.setOnCheckedChangeListener((buttonView, isChecked) -> {
+ if (!isChecked) return;
+ Log.d("profiles",
+ String.format("Item %d got checked", holder.getAdapterPosition()));
MobileLedgerProfile profile = (MobileLedgerProfile) holder.itemView.getTag();
- holder.mRadioView.setChecked(profile.equals(newProfile));
+ if (profile != null) {
+ Log.d("profiles",
+ String.format("Setting current profile to %s", profile.getUuid()));
+ Data.setCurrentProfile(profile);
+ }
+ });
+ View.OnClickListener profileSelector = v -> holder.mRadioView.setChecked(true);
+ holder.mTitle.setOnClickListener(profileSelector);
+ holder.mSubTitle.setOnClickListener(profileSelector);
+ Data.profile.addObserver((o, arg) -> {
+ MobileLedgerProfile myProfile = (MobileLedgerProfile) holder.itemView.getTag();
+ final MobileLedgerProfile currentProfile = Data.profile.get();
+ final boolean sameProfile = currentProfile.equals(myProfile);
+ if (holder.mRadioView.isChecked() != sameProfile) {
+ holder.mRadioView.setChecked(sameProfile);
+ }
});
return holder;
}
final MobileLedgerProfile currentProfile = Data.profile.get();
Log.d("profiles", String.format("pos %d: %s, current: %s", position, profile.getUuid(),
currentProfile.getUuid()));
- View.OnClickListener profileSelector = v -> {
- holder.mRadioView.setChecked(true);
- Data.setCurrentProfile(profile);
- };
- Data.profile.addObserver(new Observer() {
- @Override
- public void update(Observable o, Object arg) {
- holder.mRadioView.setChecked(Data.profile.get().equals(profile));
- }
- });
+ holder.itemView.setTag(profile);
holder.mTitle.setText(profile.getName());
- holder.mTitle.setOnClickListener(profileSelector);
holder.mSubTitle.setText(profile.getUrl());
- holder.mSubTitle.setOnClickListener(profileSelector);
- holder.mRadioView.setChecked(profile.getUuid().equals(currentProfile.getUuid()));
+ holder.mRadioView.setChecked(profile.equals(currentProfile));
- holder.itemView.setTag(profile);
holder.mEditButton.setOnClickListener(mOnClickListener);
}
@Override