Use icons in key view

This commit is contained in:
Dominik Schürmann 2014-07-28 11:11:23 +02:00
parent a3045c710e
commit 3d6edd1190
5 changed files with 65 additions and 44 deletions

View file

@ -494,19 +494,19 @@ public class KeyListFragment extends LoaderFragment
if (isRevoked) { if (isRevoked) {
h.mStatus.setVisibility(View.VISIBLE); h.mStatus.setVisibility(View.VISIBLE);
h.mStatus.setImageDrawable( h.mStatus.setImageDrawable(
getResources().getDrawable(R.drawable.status_signature_revoked_cutout)); getResources().getDrawable(R.drawable.status_signature_revoked));
h.mStatus.setColorFilter(getResources().getColor(R.color.result_red), h.mStatus.setColorFilter(getResources().getColor(R.color.result_red),
PorterDuff.Mode.SRC_ATOP); PorterDuff.Mode.SRC_ATOP);
} else if (isExpired) { } else if (isExpired) {
h.mStatus.setVisibility(View.VISIBLE); h.mStatus.setVisibility(View.VISIBLE);
h.mStatus.setImageDrawable( h.mStatus.setImageDrawable(
getResources().getDrawable(R.drawable.status_signature_expired_cutout)); getResources().getDrawable(R.drawable.status_signature_expired));
h.mStatus.setColorFilter(getResources().getColor(R.color.result_orange), h.mStatus.setColorFilter(getResources().getColor(R.color.result_orange),
PorterDuff.Mode.SRC_ATOP); PorterDuff.Mode.SRC_ATOP);
} else if (isVerified) { } else if (isVerified) {
h.mStatus.setVisibility(View.VISIBLE); h.mStatus.setVisibility(View.VISIBLE);
h.mStatus.setImageDrawable( h.mStatus.setImageDrawable(
getResources().getDrawable(R.drawable.status_signature_verified_cutout)); getResources().getDrawable(R.drawable.status_signature_verified));
h.mStatus.setColorFilter(getResources().getColor(R.color.result_green), h.mStatus.setColorFilter(getResources().getColor(R.color.result_green),
PorterDuff.Mode.SRC_ATOP); PorterDuff.Mode.SRC_ATOP);
} else { } else {

View file

@ -22,6 +22,7 @@ import android.annotation.TargetApi;
import android.app.Activity; import android.app.Activity;
import android.content.Intent; import android.content.Intent;
import android.database.Cursor; import android.database.Cursor;
import android.graphics.PorterDuff;
import android.net.Uri; import android.net.Uri;
import android.nfc.NdefMessage; import android.nfc.NdefMessage;
import android.nfc.NdefRecord; import android.nfc.NdefRecord;
@ -43,6 +44,9 @@ import android.view.Menu;
import android.view.MenuItem; import android.view.MenuItem;
import android.view.View; import android.view.View;
import android.view.Window; import android.view.Window;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.devspark.appmsg.AppMsg; import com.devspark.appmsg.AppMsg;
@ -81,9 +85,11 @@ public class ViewKeyActivity extends ActionBarActivity implements
private ViewPager mViewPager; private ViewPager mViewPager;
private SlidingTabLayout mSlidingTabLayout; private SlidingTabLayout mSlidingTabLayout;
private PagerTabStripAdapter mTabsAdapter; private PagerTabStripAdapter mTabsAdapter;
private LinearLayout mStatusLayout;
private TextView mStatusText;
private ImageView mStatusImage;
private View mStatusDivider; private View mStatusDivider;
private View mStatusRevoked;
private View mStatusExpired;
public static final int REQUEST_CODE_LOOKUP_KEY = 0x00007006; public static final int REQUEST_CODE_LOOKUP_KEY = 0x00007006;
@ -115,9 +121,10 @@ public class ViewKeyActivity extends ActionBarActivity implements
setContentView(R.layout.view_key_activity); setContentView(R.layout.view_key_activity);
mStatusDivider = findViewById(R.id.status_divider); mStatusLayout = (LinearLayout) findViewById(R.id.view_key_status_layout);
mStatusRevoked = findViewById(R.id.view_key_revoked); mStatusText = (TextView) findViewById(R.id.view_key_status_text);
mStatusExpired = findViewById(R.id.view_key_expired); mStatusImage = (ImageView) findViewById(R.id.view_key_status_image);
mStatusDivider = findViewById(R.id.view_key_status_divider);
mViewPager = (ViewPager) findViewById(R.id.view_key_pager); mViewPager = (ViewPager) findViewById(R.id.view_key_pager);
mSlidingTabLayout = (SlidingTabLayout) findViewById(R.id.view_key_sliding_tab_layout); mSlidingTabLayout = (SlidingTabLayout) findViewById(R.id.view_key_sliding_tab_layout);
@ -515,22 +522,32 @@ public class ViewKeyActivity extends ActionBarActivity implements
String keyIdStr = PgpKeyHelper.convertKeyIdToHex(masterKeyId); String keyIdStr = PgpKeyHelper.convertKeyIdToHex(masterKeyId);
getSupportActionBar().setSubtitle(keyIdStr); getSupportActionBar().setSubtitle(keyIdStr);
// If this key is revoked, it cannot be used for anything! boolean isRevoked = data.getInt(INDEX_UNIFIED_IS_REVOKED) > 0;
if (data.getInt(INDEX_UNIFIED_IS_REVOKED) != 0) { boolean isExpired = !data.isNull(INDEX_UNIFIED_EXPIRY)
mStatusDivider.setVisibility(View.VISIBLE); && new Date(data.getLong(INDEX_UNIFIED_EXPIRY) * 1000).before(new Date());
mStatusRevoked.setVisibility(View.VISIBLE);
mStatusExpired.setVisibility(View.GONE);
} else {
mStatusRevoked.setVisibility(View.GONE);
Date expiryDate = new Date(data.getLong(INDEX_UNIFIED_EXPIRY) * 1000); // Note: order is important
if (!data.isNull(INDEX_UNIFIED_EXPIRY) && expiryDate.before(new Date())) { if (isRevoked) {
mStatusDivider.setVisibility(View.VISIBLE); mStatusDivider.setVisibility(View.VISIBLE);
mStatusExpired.setVisibility(View.VISIBLE); mStatusLayout.setVisibility(View.VISIBLE);
mStatusText.setText(R.string.view_key_revoked);
mStatusText.setTextColor(getResources().getColor(R.color.result_red));
mStatusImage.setImageDrawable(
getResources().getDrawable(R.drawable.status_signature_revoked));
mStatusImage.setColorFilter(getResources().getColor(R.color.result_red),
PorterDuff.Mode.SRC_ATOP);
} else if (isExpired) {
mStatusDivider.setVisibility(View.VISIBLE);
mStatusLayout.setVisibility(View.VISIBLE);
mStatusText.setText(R.string.view_key_expired);
mStatusText.setTextColor(getResources().getColor(R.color.result_orange));
mStatusImage.setImageDrawable(
getResources().getDrawable(R.drawable.status_signature_expired_cutout));
mStatusImage.setColorFilter(getResources().getColor(R.color.result_orange),
PorterDuff.Mode.SRC_ATOP);
} else { } else {
mStatusDivider.setVisibility(View.GONE); mStatusDivider.setVisibility(View.GONE);
mStatusExpired.setVisibility(View.GONE); mStatusLayout.setVisibility(View.GONE);
}
} }
break; break;

View file

@ -43,7 +43,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:id="@+id/status_image" android:id="@+id/status_image"
android:layout_gravity="center" android:layout_gravity="center"
android:src="@drawable/status_signature_verified_cutout" android:src="@drawable/status_signature_revoked_cutout"
android:padding="16dp" /> android:padding="16dp" />
</LinearLayout> </LinearLayout>

View file

@ -10,36 +10,36 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="vertical" /> android:orientation="vertical" />
<TextView <LinearLayout
android:layout_width="match_parent" android:id="@+id/view_key_status_layout"
android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="This key is expired!" android:layout_gravity="center"
android:id="@+id/view_key_expired"
android:textColor="@color/alert"
android:textAppearance="?android:attr/textAppearanceSmall"
android:gravity="center_vertical|center_horizontal"
android:layout_marginTop="8dp" android:layout_marginTop="8dp"
android:layout_marginBottom="8dp" android:layout_marginBottom="8dp"
android:visibility="gone" /> android:orientation="horizontal">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/view_key_status_image" />
<TextView <TextView
android:layout_width="match_parent" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="This key has been revoked!" android:id="@+id/view_key_status_text"
android:id="@+id/view_key_revoked" android:textAppearance="?android:attr/textAppearanceMedium"
android:textColor="@color/alert" android:layout_gravity="center_vertical"
android:textAppearance="?android:attr/textAppearanceSmall" android:layout_marginLeft="8dp"/>
android:gravity="center_vertical|center_horizontal"
android:visibility="gone" </LinearLayout>
android:layout_marginTop="8dp"
android:layout_marginBottom="8dp" />
<View <View
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="1dip" android:layout_height="1dip"
android:background="?android:attr/listDivider" android:background="?android:attr/listDivider"
android:visibility="gone" android:visibility="gone"
android:id="@+id/status_divider" /> android:id="@+id/view_key_status_divider" />
<org.sufficientlysecure.keychain.ui.widget.SlidingTabLayout <org.sufficientlysecure.keychain.ui.widget.SlidingTabLayout
android:id="@+id/view_key_sliding_tab_layout" android:id="@+id/view_key_sliding_tab_layout"

View file

@ -492,6 +492,10 @@
<string name="create_key_upload">Upload key to keyserver</string> <string name="create_key_upload">Upload key to keyserver</string>
<string name="create_key_empty">This field is required</string> <string name="create_key_empty">This field is required</string>
<!-- View key -->
<string name="view_key_revoked">This key has been revoked!</string>
<string name="view_key_expired">This key is expired!</string>
<!-- Navigation Drawer --> <!-- Navigation Drawer -->
<string name="nav_keys">Keys</string> <string name="nav_keys">Keys</string>
<string name="nav_encrypt">Sign and Encrypt</string> <string name="nav_encrypt">Sign and Encrypt</string>