Add expiration check on build freshness.

// FREEBIE
This commit is contained in:
Moxie Marlinspike
2015-01-11 20:27:34 -08:00
parent 12845da91a
commit a0ed0842a0
15 changed files with 135 additions and 50 deletions

View File

@@ -0,0 +1,35 @@
package org.thoughtcrime.securesms.components;
import android.annotation.TargetApi;
import android.content.Context;
import android.content.Intent;
import android.os.Build;
import android.provider.Telephony;
import android.util.Log;
import android.view.View;
import org.thoughtcrime.securesms.R;
import org.thoughtcrime.securesms.TextSecureExpiredException;
import org.thoughtcrime.securesms.util.TextSecurePreferences;
import org.thoughtcrime.securesms.util.Util;
public class ExpiredBuildReminder extends Reminder {
private static final String TAG = ExpiredBuildReminder.class.getSimpleName();
public ExpiredBuildReminder() {
super(R.drawable.ic_dialog_alert_holo_dark,
R.string.reminder_header_expired_build,
R.string.reminder_header_expired_build_details);
}
@Override
public boolean isDismissable() {
return false;
}
public static boolean isEligible(Context context) {
return !Util.isBuildFresh();
}
}

View File

@@ -46,4 +46,8 @@ public abstract class Reminder {
public void setCancelListener(OnClickListener cancelListener) {
this.cancelListener = cancelListener;
}
public boolean isDismissable() {
return true;
}
}

View File

@@ -56,15 +56,21 @@ public class ReminderView extends LinearLayout {
icon.setImageResource(reminder.getIconResId());
title.setText(reminder.getTitleResId());
text.setText(reminder.getTextResId());
ok.setOnClickListener(reminder.getOkListener());
cancel.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
hide();
if (reminder.getCancelListener() != null) reminder.getCancelListener().onClick(v);
}
});
container.setVisibility(View.VISIBLE);
if (reminder.isDismissable()) {
ok.setOnClickListener(reminder.getOkListener());
cancel.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
hide();
if (reminder.getCancelListener() != null) reminder.getCancelListener().onClick(v);
}
});
container.setVisibility(View.VISIBLE);
} else {
ok.setVisibility(View.GONE);
cancel.setVisibility(View.GONE);
}
}
public void hide() {