move key health into its own view, make key status card view standalone

This commit is contained in:
Vincent Breitmoser
2017-05-26 19:17:42 +02:00
parent 6459deb6b8
commit 005d3039b5
4 changed files with 176 additions and 164 deletions

View File

@@ -45,13 +45,13 @@ import org.sufficientlysecure.keychain.ui.EditIdentitiesActivity;
import org.sufficientlysecure.keychain.ui.adapter.UserIdsAdapter;
import org.sufficientlysecure.keychain.ui.base.LoaderFragment;
import org.sufficientlysecure.keychain.ui.dialog.UserIdInfoDialogFragment;
import org.sufficientlysecure.keychain.ui.keyview.view.KeyHealthCardView;
import org.sufficientlysecure.keychain.ui.keyview.presenter.KeyHealthPresenter;
import org.sufficientlysecure.keychain.ui.keyview.view.LinkedIdentitiesCardView;
import org.sufficientlysecure.keychain.ui.keyview.presenter.LinkedIdentitiesPresenter;
import org.sufficientlysecure.keychain.ui.keyview.presenter.LinkedIdentitiesPresenter.LinkedIdsFragMvpView;
import org.sufficientlysecure.keychain.ui.keyview.view.SystemContactCardView;
import org.sufficientlysecure.keychain.ui.keyview.presenter.SystemContactPresenter;
import org.sufficientlysecure.keychain.ui.keyview.view.KeyHealthView;
import org.sufficientlysecure.keychain.ui.keyview.view.LinkedIdentitiesCardView;
import org.sufficientlysecure.keychain.ui.keyview.view.SystemContactCardView;
import org.sufficientlysecure.keychain.util.Preferences;
@@ -80,7 +80,8 @@ public class ViewKeyFragment extends LoaderFragment implements LoaderManager.Loa
SystemContactCardView mSystemContactCard;
SystemContactPresenter mSystemContactPresenter;
KeyHealthCardView mKeyHealthCard;
KeyHealthView mKeyStatusHealth;
KeyHealthPresenter mKeyHealthPresenter;
private long mMasterKeyId;
@@ -123,7 +124,7 @@ public class ViewKeyFragment extends LoaderFragment implements LoaderManager.Loa
});
mSystemContactCard = (SystemContactCardView) view.findViewById(R.id.linked_system_contact_card);
mKeyHealthCard = (KeyHealthCardView) view.findViewById(R.id.subkey_status_card);
mKeyStatusHealth = (KeyHealthView) view.findViewById(R.id.key_status_health);
return root;
}
@@ -161,7 +162,7 @@ public class ViewKeyFragment extends LoaderFragment implements LoaderManager.Loa
mSystemContactPresenter.startLoader(getLoaderManager());
mKeyHealthPresenter = new KeyHealthPresenter(
getContext(), mKeyHealthCard, LOADER_ID_SUBKEY_STATUS, mMasterKeyId, mIsSecret);
getContext(), mKeyStatusHealth, LOADER_ID_SUBKEY_STATUS, mMasterKeyId, mIsSecret);
mKeyHealthPresenter.startLoader(getLoaderManager());
}

View File

@@ -25,13 +25,13 @@ import android.support.annotation.ColorRes;
import android.support.annotation.DrawableRes;
import android.support.annotation.StringRes;
import android.support.v4.content.ContextCompat;
import android.support.v7.widget.CardView;
import android.text.format.DateFormat;
import android.util.AttributeSet;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import org.sufficientlysecure.keychain.R;
@@ -46,7 +46,7 @@ import org.sufficientlysecure.keychain.ui.keyview.view.KeyStatusList.KeyDisplayS
import org.sufficientlysecure.keychain.ui.util.KeyFormattingUtils;
public class KeyHealthCardView extends CardView implements KeyHealthMvpView, OnClickListener {
public class KeyHealthView extends LinearLayout implements KeyHealthMvpView, OnClickListener {
private final View vLayout;
private final TextView vTitle, vSubtitle;
private final ImageView vIcon;
@@ -61,9 +61,11 @@ public class KeyHealthCardView extends CardView implements KeyHealthMvpView, OnC
private KeyHealthClickListener keyHealthClickListener;
public KeyHealthCardView(Context context, AttributeSet attrs) {
public KeyHealthView(Context context, AttributeSet attrs) {
super(context, attrs);
setOrientation(VERTICAL);
View view = LayoutInflater.from(context).inflate(R.layout.key_health_card_content, this, true);
vLayout = view.findViewById(R.id.key_health_layout);

View File

@@ -1,164 +1,155 @@
<merge
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
xmlns:tools="http://schemas.android.com/tools"
tools:layout_width="match_parent"
tools:layout_height="wrap_content"
tools:parentTag="LinearLayout"
tools:orientation="vertical">
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
android:id="@+id/key_health_layout"
android:paddingTop="12dp"
android:paddingBottom="12dp"
android:paddingLeft="8dp"
android:paddingRight="8dp"
android:background="?selectableItemBackground"
>
<TextView
style="@style/CardViewHeader"
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Key Status" />
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/key_health_layout"
android:paddingTop="12dp"
android:paddingBottom="12dp"
android:paddingLeft="8dp"
android:paddingRight="8dp"
android:background="?selectableItemBackground"
>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:id="@+id/key_health_icon"
tools:src="@drawable/ic_check_white_24dp"
tools:tint="@color/android_green_light"
android:layout_marginLeft="12dp"
android:layout_marginRight="12dp"
/>
<LinearLayout
android:orientation="vertical"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:id="@+id/key_health_title"
android:textAppearance="?android:attr/textAppearanceMedium"
tools:text="Healthy" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:id="@+id/key_health_subtitle"
tools:text="No key issues found." />
</LinearLayout>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:id="@+id/key_health_expander"
android:src="@drawable/ic_expand_more_black_24dp"
android:layout_marginLeft="12dp"
android:layout_marginRight="12dp"
android:visibility="gone"
tools:visibility="visible"
/>
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dip"
android:id="@+id/key_health_divider"
android:background="?android:attr/listDivider" />
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:layout_marginBottom="8dp"
android:paddingLeft="8dp"
android:paddingRight="8dp"
android:id="@+id/key_insecure_layout"
android:visibility="gone"
tools:visibility="gone">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="Security Problem"
android:textAppearance="@style/SectionHeader"
android:layout_marginBottom="4dp"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:id="@+id/key_insecure_problem"
tools:text="@string/key_insecure_bitstrength_2048_problem" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="Suggested Solution"
android:textAppearance="@style/SectionHeader"
android:layout_marginTop="8dp"
android:layout_marginBottom="4dp"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:id="@+id/key_insecure_solution"
tools:text="@string/key_insecure_bitstrength_2048_solution" />
</LinearLayout>
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:layout_marginBottom="8dp"
android:paddingLeft="8dp"
android:paddingRight="8dp"
android:id="@+id/key_expiry_layout"
android:visibility="gone"
tools:visibility="visible">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:id="@+id/key_expiry_text"
android:textAppearance="?android:textAppearanceSmall"
tools:text="@string/key_expiry_text"
/>
</LinearLayout>
<org.sufficientlysecure.keychain.ui.keyview.view.KeyStatusList
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/key_health_status_list"
android:paddingTop="12dp"
android:paddingBottom="12dp"
android:paddingLeft="8dp"
android:paddingRight="8dp"
android:visibility="gone"
android:layout_gravity="center_vertical"
android:id="@+id/key_health_icon"
tools:src="@drawable/ic_check_white_24dp"
tools:tint="@color/android_green_light"
android:layout_marginLeft="12dp"
android:layout_marginRight="12dp"
/>
<LinearLayout
android:orientation="vertical"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:id="@+id/key_health_title"
android:textAppearance="?android:attr/textAppearanceMedium"
tools:text="Healthy" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:id="@+id/key_health_subtitle"
tools:text="No key issues found." />
</LinearLayout>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:id="@+id/key_health_expander"
android:src="@drawable/ic_expand_more_black_24dp"
android:layout_marginLeft="12dp"
android:layout_marginRight="12dp"
android:visibility="gone"
tools:visibility="visible"
/>
<!--tools:visibility="visible"-->
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dip"
android:id="@+id/key_health_divider"
android:background="?android:attr/listDivider" />
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:layout_marginBottom="8dp"
android:paddingLeft="8dp"
android:paddingRight="8dp"
android:id="@+id/key_insecure_layout"
android:visibility="gone"
tools:visibility="visible">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="Security Problem"
android:textAppearance="@style/SectionHeader"
android:layout_marginBottom="4dp"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:id="@+id/key_insecure_problem"
tools:text="@string/key_insecure_bitstrength_2048_problem" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="Suggested Solution"
android:textAppearance="@style/SectionHeader"
android:layout_marginTop="8dp"
android:layout_marginBottom="4dp"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:id="@+id/key_insecure_solution"
tools:text="@string/key_insecure_bitstrength_2048_solution" />
</LinearLayout>
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:layout_marginBottom="8dp"
android:paddingLeft="8dp"
android:paddingRight="8dp"
android:id="@+id/key_expiry_layout"
android:visibility="gone"
tools:visibility="visible">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:id="@+id/key_expiry_text"
android:textAppearance="?android:textAppearanceSmall"
tools:text="@string/key_expiry_text"
/>
</LinearLayout>
<org.sufficientlysecure.keychain.ui.keyview.view.KeyStatusList
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/key_health_status_list"
android:paddingTop="12dp"
android:paddingBottom="12dp"
android:paddingLeft="8dp"
android:paddingRight="8dp"
android:visibility="gone"
/>
<!--tools:visibility="visible"-->
</merge>

View File

@@ -9,18 +9,36 @@
android:paddingRight="16dp"
android:paddingTop="16dp">
<org.sufficientlysecure.keychain.ui.keyview.view.KeyHealthCardView
<android.support.v7.widget.CardView
android:id="@+id/subkey_status_card"
android:layout_gravity="center"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:visibility="gone"
tools:visibility="visible"
card_view:cardBackgroundColor="?attr/colorCardViewBackground"
card_view:cardElevation="2dp"
card_view:cardUseCompatPadding="true"
card_view:cardCornerRadius="4dp"
/>
card_view:cardCornerRadius="4dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
style="@style/CardViewHeader"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Key Status" />
<org.sufficientlysecure.keychain.ui.keyview.view.KeyHealthView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/key_status_health"
/>
</LinearLayout>
</android.support.v7.widget.CardView>
<org.sufficientlysecure.keychain.ui.keyview.view.LinkedIdentitiesCardView
android:id="@+id/card_linked_ids"