show scan button in TrustKeys only if there is something to scan
This commit is contained in:
parent
cbbf6f439b
commit
b2aae44645
|
@ -25,6 +25,7 @@ import java.util.HashMap;
|
|||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.concurrent.atomic.AtomicBoolean;
|
||||
|
||||
import eu.siacs.conversations.Config;
|
||||
import eu.siacs.conversations.R;
|
||||
|
@ -52,6 +53,8 @@ public class TrustKeysActivity extends OmemoActivity implements OnKeyStatusUpdat
|
|||
private Button mSaveButton;
|
||||
private Button mCancelButton;
|
||||
|
||||
private AtomicBoolean mUseCameraHintShown = new AtomicBoolean(false);
|
||||
|
||||
private AxolotlService.FetchStatus lastFetchReport = AxolotlService.FetchStatus.SUCCESS;
|
||||
|
||||
private final Map<String, Boolean> ownKeysToTrust = new HashMap<>();
|
||||
|
@ -114,11 +117,16 @@ public class TrustKeysActivity extends OmemoActivity implements OnKeyStatusUpdat
|
|||
@Override
|
||||
public boolean onCreateOptionsMenu(Menu menu) {
|
||||
getMenuInflater().inflate(R.menu.trust_keys, menu);
|
||||
MenuItem scanQrCode = menu.findItem(R.id.action_scan_qr_code);
|
||||
scanQrCode.setVisible(ownKeysToTrust.size() > 0 || foreignActuallyHasKeys());
|
||||
return super.onCreateOptionsMenu(menu);
|
||||
}
|
||||
|
||||
private void showCameraToast() {
|
||||
mUseCameraHintToast = Toast.makeText(this,R.string.use_camera_icon_to_scan_barcode,Toast.LENGTH_LONG);
|
||||
ActionBar actionBar = getActionBar();
|
||||
mUseCameraHintToast.setGravity(Gravity.TOP | Gravity.END, 0 ,actionBar == null ? 0 : actionBar.getHeight());
|
||||
mUseCameraHintToast.show();
|
||||
return super.onCreateOptionsMenu(menu);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -218,6 +226,10 @@ public class TrustKeysActivity extends OmemoActivity implements OnKeyStatusUpdat
|
|||
}
|
||||
}
|
||||
|
||||
if ((hasOwnKeys || foreignActuallyHasKeys()) && mUseCameraHintShown.compareAndSet(false,true)) {
|
||||
showCameraToast();
|
||||
}
|
||||
|
||||
ownKeysTitle.setText(mAccount.getJid().toBareJid().toString());
|
||||
ownKeysCard.setVisibility(hasOwnKeys ? View.VISIBLE : View.GONE);
|
||||
foreignKeys.setVisibility(hasForeignKeys ? View.VISIBLE : View.GONE);
|
||||
|
@ -243,6 +255,17 @@ public class TrustKeysActivity extends OmemoActivity implements OnKeyStatusUpdat
|
|||
}
|
||||
}
|
||||
|
||||
private boolean foreignActuallyHasKeys() {
|
||||
synchronized (this.foreignKeysToTrust) {
|
||||
for (Map.Entry<Jid, Map<String, Boolean>> entry : foreignKeysToTrust.entrySet()) {
|
||||
if (entry.getValue().size() > 0) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
private boolean reloadFingerprints() {
|
||||
List<Jid> acceptedTargets = mConversation == null ? new ArrayList<Jid>() : mConversation.getAcceptedCryptoTargets();
|
||||
ownKeysToTrust.clear();
|
||||
|
|
Loading…
Reference in a new issue