package de.devland.masterpassword.ui.preferences; import android.content.Context; import android.preference.DialogPreference; import android.util.AttributeSet; import android.view.View; import android.widget.TextView; import com.google.common.base.Strings; import java.util.HashSet; import java.util.Iterator; import java.util.Set; import butterknife.BindView; import butterknife.ButterKnife; import de.devland.masterpassword.R; import de.devland.masterpassword.model.Site; /** * Created by deekay on 18.01.2017. */ public class StatisticsPreference extends DialogPreference { @BindView(R.id.textView_passwordCount) protected TextView passwordCountText; @BindView(R.id.textView_categoryCount) protected TextView categoryCountText; @BindView(R.id.textView_savedLoginCount) protected TextView savedLoginsCountText; @BindView(R.id.textView_loginCount) protected TextView generatedLoginsCountText; public StatisticsPreference(Context context, AttributeSet attributeset) { super(context, attributeset); setDialogLayoutResource(R.layout.dialog_statistics); setPersistent(false); } @Override protected void onBindDialogView(View view) { super.onBindDialogView(view); ButterKnife.bind(this, view); int passwordCount = 0; Set<String> categories = new HashSet<>(); int generatedLoginCount = 0; int savedLoginCount = 0; Iterator<Site> sites = Site.findAll(Site.class); while (sites.hasNext()) { Site next = sites.next(); passwordCount++; if (next.isGeneratedUserName()) { generatedLoginCount++; } if (!Strings.isNullOrEmpty(next.getStoredPassword())) { savedLoginCount++; } if (!Strings.isNullOrEmpty(next.getCategory())) { categories.add(next.getCategory()); } } passwordCountText.setText(String.valueOf(passwordCount)); categoryCountText.setText(String.valueOf(categories.size())); generatedLoginsCountText.setText(String.valueOf(generatedLoginCount)); savedLoginsCountText.setText(String.valueOf(savedLoginCount)); } }