work on LinkedIdViewFragment
This commit is contained in:
@@ -13,6 +13,7 @@ import java.nio.ByteBuffer;
|
|||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
import android.content.Intent;
|
||||||
import android.support.annotation.DrawableRes;
|
import android.support.annotation.DrawableRes;
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ import java.util.Set;
|
|||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
import android.content.Intent;
|
||||||
import android.support.annotation.DrawableRes;
|
import android.support.annotation.DrawableRes;
|
||||||
|
|
||||||
public abstract class LinkedResource {
|
public abstract class LinkedResource {
|
||||||
@@ -105,5 +106,11 @@ public abstract class LinkedResource {
|
|||||||
public abstract @DrawableRes int getDisplayIcon();
|
public abstract @DrawableRes int getDisplayIcon();
|
||||||
public abstract String getDisplayTitle(Context context);
|
public abstract String getDisplayTitle(Context context);
|
||||||
public abstract String getDisplayComment(Context context);
|
public abstract String getDisplayComment(Context context);
|
||||||
|
public boolean isViewable() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
public Intent getViewIntent() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ import java.net.URI;
|
|||||||
import java.nio.ByteBuffer;
|
import java.nio.ByteBuffer;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
import android.content.Intent;
|
||||||
import android.support.annotation.DrawableRes;
|
import android.support.annotation.DrawableRes;
|
||||||
|
|
||||||
/** The RawLinkedIdentity contains raw parsed data from a Linked Identity subpacket. */
|
/** The RawLinkedIdentity contains raw parsed data from a Linked Identity subpacket. */
|
||||||
|
|||||||
@@ -110,11 +110,11 @@ public class DnsResource extends LinkedCookieResource {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getDisplayTitle(Context context) {
|
public String getDisplayTitle(Context context) {
|
||||||
return "dns";
|
return "Domain Name";
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getDisplayComment(Context context) {
|
public String getDisplayComment(Context context) {
|
||||||
return null;
|
return mFqdn;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
package org.sufficientlysecure.keychain.pgp.linked.resources;
|
package org.sufficientlysecure.keychain.pgp.linked.resources;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
import android.content.Intent;
|
||||||
|
import android.net.Uri;
|
||||||
import android.support.annotation.DrawableRes;
|
import android.support.annotation.DrawableRes;
|
||||||
|
|
||||||
import com.textuality.keybase.lib.Search;
|
import com.textuality.keybase.lib.Search;
|
||||||
@@ -109,12 +111,23 @@ public class GenericHttpsResource extends LinkedCookieResource {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getDisplayTitle(Context context) {
|
public String getDisplayTitle(Context context) {
|
||||||
return "https";
|
return "Website (HTTPS)";
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getDisplayComment(Context context) {
|
public String getDisplayComment(Context context) {
|
||||||
return null;
|
return mSubUri.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isViewable() {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Intent getViewIntent() {
|
||||||
|
Intent intent = new Intent(Intent.ACTION_VIEW);
|
||||||
|
intent.setData(Uri.parse(mSubUri.toString()));
|
||||||
|
return intent;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -39,7 +39,6 @@ import org.sufficientlysecure.keychain.util.Preferences;
|
|||||||
import org.sufficientlysecure.keychain.keyimport.ParcelableKeyRing;
|
import org.sufficientlysecure.keychain.keyimport.ParcelableKeyRing;
|
||||||
import org.sufficientlysecure.keychain.operations.ImportExportOperation;
|
import org.sufficientlysecure.keychain.operations.ImportExportOperation;
|
||||||
import org.sufficientlysecure.keychain.operations.results.ConsolidateResult;
|
import org.sufficientlysecure.keychain.operations.results.ConsolidateResult;
|
||||||
import org.sufficientlysecure.keychain.operations.results.ImportKeyResult;
|
|
||||||
import org.sufficientlysecure.keychain.operations.results.OperationResult.LogType;
|
import org.sufficientlysecure.keychain.operations.results.OperationResult.LogType;
|
||||||
import org.sufficientlysecure.keychain.operations.results.OperationResult.OperationLog;
|
import org.sufficientlysecure.keychain.operations.results.OperationResult.OperationLog;
|
||||||
import org.sufficientlysecure.keychain.operations.results.SaveKeyringResult;
|
import org.sufficientlysecure.keychain.operations.results.SaveKeyringResult;
|
||||||
@@ -54,7 +53,6 @@ import org.sufficientlysecure.keychain.pgp.Progressable;
|
|||||||
import org.sufficientlysecure.keychain.pgp.UncachedKeyRing;
|
import org.sufficientlysecure.keychain.pgp.UncachedKeyRing;
|
||||||
import org.sufficientlysecure.keychain.pgp.UncachedPublicKey;
|
import org.sufficientlysecure.keychain.pgp.UncachedPublicKey;
|
||||||
import org.sufficientlysecure.keychain.pgp.WrappedSignature;
|
import org.sufficientlysecure.keychain.pgp.WrappedSignature;
|
||||||
import org.sufficientlysecure.keychain.pgp.WrappedUserAttribute;
|
|
||||||
import org.sufficientlysecure.keychain.pgp.exception.PgpGeneralException;
|
import org.sufficientlysecure.keychain.pgp.exception.PgpGeneralException;
|
||||||
import org.sufficientlysecure.keychain.provider.KeychainContract.ApiAllowedKeys;
|
import org.sufficientlysecure.keychain.provider.KeychainContract.ApiAllowedKeys;
|
||||||
import org.sufficientlysecure.keychain.provider.KeychainContract.ApiApps;
|
import org.sufficientlysecure.keychain.provider.KeychainContract.ApiApps;
|
||||||
@@ -62,15 +60,11 @@ import org.sufficientlysecure.keychain.provider.KeychainContract.Certs;
|
|||||||
import org.sufficientlysecure.keychain.provider.KeychainContract.KeyRingData;
|
import org.sufficientlysecure.keychain.provider.KeychainContract.KeyRingData;
|
||||||
import org.sufficientlysecure.keychain.provider.KeychainContract.KeyRings;
|
import org.sufficientlysecure.keychain.provider.KeychainContract.KeyRings;
|
||||||
import org.sufficientlysecure.keychain.provider.KeychainContract.Keys;
|
import org.sufficientlysecure.keychain.provider.KeychainContract.Keys;
|
||||||
import org.sufficientlysecure.keychain.provider.KeychainContract.UserPackets;
|
|
||||||
import org.sufficientlysecure.keychain.remote.AccountSettings;
|
import org.sufficientlysecure.keychain.remote.AccountSettings;
|
||||||
import org.sufficientlysecure.keychain.remote.AppSettings;
|
import org.sufficientlysecure.keychain.remote.AppSettings;
|
||||||
import org.sufficientlysecure.keychain.ui.util.KeyFormattingUtils;
|
|
||||||
import org.sufficientlysecure.keychain.util.IterableIterator;
|
import org.sufficientlysecure.keychain.util.IterableIterator;
|
||||||
import org.sufficientlysecure.keychain.util.Log;
|
import org.sufficientlysecure.keychain.util.Log;
|
||||||
import org.sufficientlysecure.keychain.util.ParcelableFileCache;
|
import org.sufficientlysecure.keychain.util.ParcelableFileCache;
|
||||||
import org.sufficientlysecure.keychain.util.ParcelableFileCache.IteratorWithSize;
|
|
||||||
import org.sufficientlysecure.keychain.util.Preferences;
|
|
||||||
import org.sufficientlysecure.keychain.util.ProgressFixedScaler;
|
import org.sufficientlysecure.keychain.util.ProgressFixedScaler;
|
||||||
import org.sufficientlysecure.keychain.util.ProgressScaler;
|
import org.sufficientlysecure.keychain.util.ProgressScaler;
|
||||||
import org.sufficientlysecure.keychain.util.Utf8Util;
|
import org.sufficientlysecure.keychain.util.Utf8Util;
|
||||||
|
|||||||
@@ -18,6 +18,8 @@
|
|||||||
|
|
||||||
package org.sufficientlysecure.keychain.ui;
|
package org.sufficientlysecure.keychain.ui;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
|
||||||
import android.database.Cursor;
|
import android.database.Cursor;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
@@ -45,6 +47,7 @@ import org.sufficientlysecure.keychain.provider.KeychainContract;
|
|||||||
import org.sufficientlysecure.keychain.ui.adapter.LinkedIdsAdapter;
|
import org.sufficientlysecure.keychain.ui.adapter.LinkedIdsAdapter;
|
||||||
import org.sufficientlysecure.keychain.ui.adapter.UserIdsAdapter;
|
import org.sufficientlysecure.keychain.ui.adapter.UserIdsAdapter;
|
||||||
import org.sufficientlysecure.keychain.ui.dialog.UserIdInfoDialogFragment;
|
import org.sufficientlysecure.keychain.ui.dialog.UserIdInfoDialogFragment;
|
||||||
|
import org.sufficientlysecure.keychain.ui.util.Notify;
|
||||||
import org.sufficientlysecure.keychain.util.Log;
|
import org.sufficientlysecure.keychain.util.Log;
|
||||||
|
|
||||||
public class ViewKeyFragment extends LoaderFragment implements
|
public class ViewKeyFragment extends LoaderFragment implements
|
||||||
@@ -107,7 +110,13 @@ public class ViewKeyFragment extends LoaderFragment implements
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void showLinkedId(final int position) {
|
private void showLinkedId(final int position) {
|
||||||
Fragment frag = mLinkedIdsAdapter.getLinkedIdFragment(position);
|
Fragment frag;
|
||||||
|
try {
|
||||||
|
frag = mLinkedIdsAdapter.getLinkedIdFragment(position);
|
||||||
|
} catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
|
||||||
Transition trans = TransitionInflater.from(getActivity())
|
Transition trans = TransitionInflater.from(getActivity())
|
||||||
|
|||||||
@@ -125,26 +125,35 @@ public class LinkedIdsAdapter extends UserAttributesAdapter {
|
|||||||
UserIdsAdapter.USER_PACKETS_PROJECTION, LINKED_IDS_WHERE, null, null);
|
UserIdsAdapter.USER_PACKETS_PROJECTION, LINKED_IDS_WHERE, null, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Fragment getLinkedIdFragment(int position) {
|
public Fragment getLinkedIdFragment(int position) throws IOException {
|
||||||
RawLinkedIdentity id = getItem(position);
|
RawLinkedIdentity id = getItem(position);
|
||||||
|
|
||||||
return LinkedIdViewFragment.newInstance(id);
|
Integer isVerified;
|
||||||
|
if (mShowCertification) {
|
||||||
|
Cursor cursor = getCursor();
|
||||||
|
cursor.moveToPosition(position);
|
||||||
|
isVerified = cursor.getInt(INDEX_VERIFIED);
|
||||||
|
} else {
|
||||||
|
isVerified = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
return LinkedIdViewFragment.newInstance(id, isVerified);
|
||||||
}
|
}
|
||||||
|
|
||||||
static class ViewHolder {
|
public static class ViewHolder {
|
||||||
ImageView vVerified;
|
final public ImageView vVerified;
|
||||||
ImageView vIcon;
|
final public ImageView vIcon;
|
||||||
TextView vTitle;
|
final public TextView vTitle;
|
||||||
TextView vComment;
|
final public TextView vComment;
|
||||||
|
|
||||||
ViewHolder(View view) {
|
public ViewHolder(View view) {
|
||||||
vVerified = (ImageView) view.findViewById(R.id.user_id_item_certified);
|
vVerified = (ImageView) view.findViewById(R.id.user_id_item_certified);
|
||||||
vIcon = (ImageView) view.findViewById(R.id.linked_id_type_icon);
|
vIcon = (ImageView) view.findViewById(R.id.linked_id_type_icon);
|
||||||
vTitle = (TextView) view.findViewById(R.id.linked_id_title);
|
vTitle = (TextView) view.findViewById(R.id.linked_id_title);
|
||||||
vComment = (TextView) view.findViewById(R.id.linked_id_comment);
|
vComment = (TextView) view.findViewById(R.id.linked_id_comment);
|
||||||
}
|
}
|
||||||
|
|
||||||
void setData(Context context, RawLinkedIdentity id) {
|
public void setData(Context context, RawLinkedIdentity id) {
|
||||||
|
|
||||||
vTitle.setText(id.getDisplayTitle(context));
|
vTitle.setText(id.getDisplayTitle(context));
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
package org.sufficientlysecure.keychain.ui.linked;
|
package org.sufficientlysecure.keychain.ui.linked;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
|
||||||
|
import android.content.Context;
|
||||||
|
import android.content.Intent;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.support.v4.app.Fragment;
|
import android.support.v4.app.Fragment;
|
||||||
import android.support.v7.widget.CardView;
|
import android.support.v7.widget.CardView;
|
||||||
@@ -9,17 +13,61 @@ import android.view.View.OnClickListener;
|
|||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
|
|
||||||
import org.sufficientlysecure.keychain.R;
|
import org.sufficientlysecure.keychain.R;
|
||||||
|
import org.sufficientlysecure.keychain.pgp.linked.LinkedCookieResource;
|
||||||
|
import org.sufficientlysecure.keychain.pgp.linked.LinkedIdentity;
|
||||||
|
import org.sufficientlysecure.keychain.pgp.linked.LinkedResource;
|
||||||
import org.sufficientlysecure.keychain.pgp.linked.RawLinkedIdentity;
|
import org.sufficientlysecure.keychain.pgp.linked.RawLinkedIdentity;
|
||||||
|
import org.sufficientlysecure.keychain.provider.KeychainContract.Certs;
|
||||||
|
import org.sufficientlysecure.keychain.ui.adapter.LinkedIdsAdapter.ViewHolder;
|
||||||
|
import org.sufficientlysecure.keychain.ui.util.KeyFormattingUtils;
|
||||||
|
import org.sufficientlysecure.keychain.ui.util.KeyFormattingUtils.State;
|
||||||
|
|
||||||
|
|
||||||
public class LinkedIdViewFragment extends Fragment {
|
public class LinkedIdViewFragment extends Fragment {
|
||||||
|
|
||||||
private CardView mLinkedIdsCard;
|
private static final String EXTRA_ENCODED_LID = "encoded_lid";
|
||||||
|
private static final String EXTRA_VERIFIED = "verified";
|
||||||
|
|
||||||
public static Fragment newInstance(RawLinkedIdentity id) {
|
private RawLinkedIdentity mLinkedId;
|
||||||
|
private LinkedCookieResource mLinkedResource;
|
||||||
|
private Integer mVerified;
|
||||||
|
|
||||||
|
private CardView vLinkedIdsCard;
|
||||||
|
private Context mContext;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onCreate(Bundle savedInstanceState) {
|
||||||
|
super.onCreate(savedInstanceState);
|
||||||
|
|
||||||
|
Bundle args = getArguments();
|
||||||
|
byte[] data = args.getByteArray(EXTRA_ENCODED_LID);
|
||||||
|
|
||||||
|
try {
|
||||||
|
mLinkedId = LinkedIdentity.fromAttributeData(data);
|
||||||
|
} catch (IOException e) {
|
||||||
|
// TODO um…
|
||||||
|
e.printStackTrace();
|
||||||
|
throw new AssertionError("reconstruction of user attribute must succeed!");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (mLinkedId instanceof LinkedIdentity) {
|
||||||
|
LinkedResource res = ((LinkedIdentity) mLinkedId).mResource;
|
||||||
|
mLinkedResource = (LinkedCookieResource) res;
|
||||||
|
}
|
||||||
|
|
||||||
|
mVerified = args.containsKey(EXTRA_VERIFIED) ? args.getInt(EXTRA_VERIFIED) : null;
|
||||||
|
|
||||||
|
mContext = getActivity();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Fragment newInstance(RawLinkedIdentity id, Integer isVerified) throws IOException {
|
||||||
LinkedIdViewFragment frag = new LinkedIdViewFragment();
|
LinkedIdViewFragment frag = new LinkedIdViewFragment();
|
||||||
|
|
||||||
Bundle args = new Bundle();
|
Bundle args = new Bundle();
|
||||||
|
args.putByteArray(EXTRA_ENCODED_LID, id.toUserAttribute().getEncoded());
|
||||||
|
if (isVerified != null) {
|
||||||
|
args.putInt(EXTRA_VERIFIED, isVerified);
|
||||||
|
}
|
||||||
frag.setArguments(args);
|
frag.setArguments(args);
|
||||||
|
|
||||||
return frag;
|
return frag;
|
||||||
@@ -29,17 +77,80 @@ public class LinkedIdViewFragment extends Fragment {
|
|||||||
public View onCreateView(LayoutInflater inflater, ViewGroup superContainer, Bundle savedInstanceState) {
|
public View onCreateView(LayoutInflater inflater, ViewGroup superContainer, Bundle savedInstanceState) {
|
||||||
View root = inflater.inflate(R.layout.linked_id_view_fragment, null);
|
View root = inflater.inflate(R.layout.linked_id_view_fragment, null);
|
||||||
|
|
||||||
mLinkedIdsCard = (CardView) root.findViewById(R.id.card_linked_ids);
|
vLinkedIdsCard = (CardView) root.findViewById(R.id.card_linked_ids);
|
||||||
|
|
||||||
root.findViewById(R.id.back_button).setClickable(true);
|
View back = root.findViewById(R.id.back_button);
|
||||||
root.findViewById(R.id.back_button).setOnClickListener(new OnClickListener() {
|
back.setClickable(true);
|
||||||
|
back.findViewById(R.id.back_button).setOnClickListener(new OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View v) {
|
public void onClick(View v) {
|
||||||
getFragmentManager().popBackStack();
|
getFragmentManager().popBackStack();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
ViewHolder holder = new ViewHolder(root);
|
||||||
|
|
||||||
|
if (mVerified != null) {
|
||||||
|
holder.vVerified.setVisibility(View.VISIBLE);
|
||||||
|
switch (mVerified) {
|
||||||
|
case Certs.VERIFIED_SECRET:
|
||||||
|
KeyFormattingUtils.setStatusImage(mContext, holder.vVerified,
|
||||||
|
null, State.VERIFIED, KeyFormattingUtils.DEFAULT_COLOR);
|
||||||
|
break;
|
||||||
|
case Certs.VERIFIED_SELF:
|
||||||
|
KeyFormattingUtils.setStatusImage(mContext, holder.vVerified,
|
||||||
|
null, State.UNVERIFIED, KeyFormattingUtils.DEFAULT_COLOR);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
KeyFormattingUtils.setStatusImage(mContext, holder.vVerified,
|
||||||
|
null, State.INVALID, KeyFormattingUtils.DEFAULT_COLOR);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
holder.vVerified.setVisibility(View.GONE);
|
||||||
|
}
|
||||||
|
|
||||||
|
holder.setData(mContext, mLinkedId);
|
||||||
|
|
||||||
|
// no resource, nothing further we can do…
|
||||||
|
if (mLinkedResource == null) {
|
||||||
|
root.findViewById(R.id.button_view).setVisibility(View.GONE);
|
||||||
|
root.findViewById(R.id.button_verify).setVisibility(View.GONE);
|
||||||
|
return root;
|
||||||
|
}
|
||||||
|
|
||||||
|
View button_view = root.findViewById(R.id.button_view);
|
||||||
|
if (mLinkedResource.isViewable()) {
|
||||||
|
button_view.setVisibility(View.VISIBLE);
|
||||||
|
button_view.setOnClickListener(new OnClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onClick(View v) {
|
||||||
|
Intent intent = mLinkedResource.getViewIntent();
|
||||||
|
if (intent == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
getActivity().startActivity(intent);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
button_view.setVisibility(View.GONE);
|
||||||
|
}
|
||||||
|
|
||||||
|
View button_verify = root.findViewById(R.id.button_verify);
|
||||||
|
button_verify.setOnClickListener(new OnClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onClick(View v) {
|
||||||
|
verifyResource();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
return root;
|
return root;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void verifyResource() {
|
||||||
|
|
||||||
|
// TODO
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,7 +13,8 @@
|
|||||||
android:layout_marginLeft="14dp"
|
android:layout_marginLeft="14dp"
|
||||||
android:layout_marginStart="14dp"
|
android:layout_marginStart="14dp"
|
||||||
android:src="@drawable/dns"
|
android:src="@drawable/dns"
|
||||||
android:layout_gravity="center_vertical" />
|
android:layout_gravity="center_vertical"
|
||||||
|
android:scaleType="fitCenter" />
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:orientation="vertical"
|
android:orientation="vertical"
|
||||||
@@ -46,8 +47,8 @@
|
|||||||
android:id="@+id/user_id_item_certified_layout"
|
android:id="@+id/user_id_item_certified_layout"
|
||||||
android:layout_width="22dp"
|
android:layout_width="22dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginRight="8dp"
|
android:layout_marginLeft="16dp"
|
||||||
android:layout_marginEnd="8dp"
|
android:layout_marginRight="16dp"
|
||||||
android:layout_gravity="center_vertical"
|
android:layout_gravity="center_vertical"
|
||||||
android:orientation="vertical">
|
android:orientation="vertical">
|
||||||
|
|
||||||
|
|||||||
@@ -1,54 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:minHeight="?android:attr/listPreferredItemHeight"
|
|
||||||
android:orientation="horizontal"
|
|
||||||
android:singleLine="true">
|
|
||||||
|
|
||||||
<LinearLayout
|
|
||||||
android:orientation="vertical"
|
|
||||||
android:layout_gravity="center_vertical"
|
|
||||||
android:layout_width="0dip"
|
|
||||||
android:layout_marginLeft="8dp"
|
|
||||||
android:layout_marginTop="4dp"
|
|
||||||
android:layout_marginBottom="4dp"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_weight="1">
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:id="@+id/linked_id_uri"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:text="uri"
|
|
||||||
android:textAppearance="?android:attr/textAppearanceMedium" />
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:id="@+id/user_id_item_comment"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:textColor="@color/tertiary_text_light"
|
|
||||||
android:text="unknown linked identity type"
|
|
||||||
android:textAppearance="?android:attr/textAppearanceSmall" />
|
|
||||||
|
|
||||||
</LinearLayout>
|
|
||||||
|
|
||||||
<LinearLayout
|
|
||||||
android:id="@+id/user_id_item_certified_layout"
|
|
||||||
android:layout_width="22dp"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_marginRight="12dp"
|
|
||||||
android:layout_marginEnd="12dp"
|
|
||||||
android:layout_gravity="center_vertical"
|
|
||||||
android:orientation="vertical">
|
|
||||||
|
|
||||||
<ImageView
|
|
||||||
android:id="@+id/user_id_item_certified"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:src="@drawable/status_signature_unverified_cutout_24dp"
|
|
||||||
android:layout_gravity="center_horizontal" />
|
|
||||||
|
|
||||||
</LinearLayout>
|
|
||||||
|
|
||||||
</LinearLayout>
|
|
||||||
@@ -29,28 +29,7 @@
|
|||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="Linked Identity" />
|
android:text="Linked Identity" />
|
||||||
|
|
||||||
<LinearLayout
|
<include layout="@layout/linked_id_item" />
|
||||||
android:layout_width="fill_parent"
|
|
||||||
android:layout_height="wrap_content">
|
|
||||||
|
|
||||||
<ImageView
|
|
||||||
android:minHeight="?android:attr/listPreferredItemHeight"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:id="@+id/linked_id_type_icon"
|
|
||||||
android:layout_marginLeft="14dp"
|
|
||||||
android:layout_marginStart="14dp"
|
|
||||||
android:src="@drawable/dns" />
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_marginLeft="14dp"
|
|
||||||
android:layout_marginStart="14dp"
|
|
||||||
android:text="This is a DNS linked identity~\nLorem ipsum\nmore text\neven more text\nyoooyoyo"
|
|
||||||
android:layout_gravity="center_vertical" />
|
|
||||||
|
|
||||||
</LinearLayout>
|
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
@@ -65,11 +44,12 @@
|
|||||||
style="?android:attr/borderlessButtonStyle" />
|
style="?android:attr/borderlessButtonStyle" />
|
||||||
|
|
||||||
<Space
|
<Space
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="0dp"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:layout_weight="1" />
|
android:layout_weight="1" />
|
||||||
|
|
||||||
<Button
|
<Button
|
||||||
|
android:id="@+id/button_view"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="View"
|
android:text="View"
|
||||||
@@ -78,6 +58,7 @@
|
|||||||
/>
|
/>
|
||||||
|
|
||||||
<Button
|
<Button
|
||||||
|
android:id="@+id/verify_button"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="Verify"
|
android:text="Verify"
|
||||||
|
|||||||
Reference in New Issue
Block a user