diff --git a/app/src/main/java/me/impy/aegis/MainActivity.java b/app/src/main/java/me/impy/aegis/MainActivity.java index 5da1259a..fa3ddde8 100644 --- a/app/src/main/java/me/impy/aegis/MainActivity.java +++ b/app/src/main/java/me/impy/aegis/MainActivity.java @@ -1,8 +1,10 @@ package me.impy.aegis; import android.content.Intent; +import android.graphics.drawable.Drawable; import android.inputmethodservice.Keyboard; import android.support.design.widget.FloatingActionButton; +import android.support.v4.content.ContextCompat; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.support.v7.widget.LinearLayoutManager; @@ -17,6 +19,7 @@ import java.util.ArrayList; import me.impy.aegis.crypto.KeyInfo; import me.impy.aegis.crypto.OTP; +import me.impy.aegis.helpers.DividerItemDecoration; public class MainActivity extends AppCompatActivity { @@ -24,6 +27,8 @@ public class MainActivity extends AppCompatActivity { RecyclerView rvKeyProfiles; KeyProfileAdapter mKeyProfileAdapter; ArrayList mKeyProfiles; + + int count = 0; @Override protected void onCreate(Bundle savedInstanceState) { @@ -47,6 +52,8 @@ public class MainActivity extends AppCompatActivity { LinearLayoutManager mLayoutManager = new LinearLayoutManager(this); rvKeyProfiles.setLayoutManager(mLayoutManager); + rvKeyProfiles.addItemDecoration(new DividerItemDecoration(this, LinearLayoutManager.VERTICAL)); + mKeyProfileAdapter = new KeyProfileAdapter(mKeyProfiles); rvKeyProfiles.setAdapter(mKeyProfileAdapter); } diff --git a/app/src/main/java/me/impy/aegis/crypto/KeyInfo.java b/app/src/main/java/me/impy/aegis/crypto/KeyInfo.java index 28121678..b6a915de 100644 --- a/app/src/main/java/me/impy/aegis/crypto/KeyInfo.java +++ b/app/src/main/java/me/impy/aegis/crypto/KeyInfo.java @@ -69,7 +69,7 @@ public class KeyInfo implements Serializable { String issuer = url.getQueryParameter("issuer"); String label = url.getPath(); info.issuer = issuer != null ? issuer : ""; - info.label = label != null ? label : ""; + info.label = label != null ? label.substring(1) : ""; // just use the defaults if these parameters aren't set String algorithm = url.getQueryParameter("algorithm"); diff --git a/app/src/main/java/me/impy/aegis/helpers/DividerItemDecoration.java b/app/src/main/java/me/impy/aegis/helpers/DividerItemDecoration.java new file mode 100644 index 00000000..5fcc40f5 --- /dev/null +++ b/app/src/main/java/me/impy/aegis/helpers/DividerItemDecoration.java @@ -0,0 +1,91 @@ +package me.impy.aegis.helpers; +/* + * Copyright (C) 2014 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import android.content.Context; +import android.content.res.TypedArray; +import android.graphics.Canvas; +import android.graphics.Rect; +import android.graphics.drawable.Drawable; +import android.support.v7.widget.LinearLayoutManager; +import android.support.v7.widget.RecyclerView; +import android.view.View; + +public class DividerItemDecoration extends RecyclerView.ItemDecoration { + private static final int[] ATTRS = new int[]{ + android.R.attr.listDivider + }; + public static final int HORIZONTAL_LIST = LinearLayoutManager.HORIZONTAL; + public static final int VERTICAL_LIST = LinearLayoutManager.VERTICAL; + private Drawable mDivider; + private int mOrientation; + public DividerItemDecoration(Context context, int orientation) { + final TypedArray a = context.obtainStyledAttributes(ATTRS); + mDivider = a.getDrawable(0); + a.recycle(); + setOrientation(orientation); + } + public void setOrientation(int orientation) { + if (orientation != HORIZONTAL_LIST && orientation != VERTICAL_LIST) { + throw new IllegalArgumentException("invalid orientation"); + } + mOrientation = orientation; + } + @Override + public void onDraw(Canvas c, RecyclerView parent) { + if (mOrientation == VERTICAL_LIST) { + drawVertical(c, parent); + } else { + drawHorizontal(c, parent); + } + } + public void drawVertical(Canvas c, RecyclerView parent) { + final int left = parent.getPaddingLeft(); + final int right = parent.getWidth() - parent.getPaddingRight(); + final int childCount = parent.getChildCount(); + for (int i = 0; i < childCount; i++) { + final View child = parent.getChildAt(i); + final RecyclerView.LayoutParams params = (RecyclerView.LayoutParams) child + .getLayoutParams(); + final int top = child.getBottom() + params.bottomMargin; + final int bottom = top + mDivider.getIntrinsicHeight(); + mDivider.setBounds(left, top, right, bottom); + mDivider.draw(c); + } + } + public void drawHorizontal(Canvas c, RecyclerView parent) { + final int top = parent.getPaddingTop(); + final int bottom = parent.getHeight() - parent.getPaddingBottom(); + final int childCount = parent.getChildCount(); + for (int i = 0; i < childCount; i++) { + final View child = parent.getChildAt(i); + final RecyclerView.LayoutParams params = (RecyclerView.LayoutParams) child + .getLayoutParams(); + final int left = child.getRight() + params.rightMargin; + final int right = left + mDivider.getIntrinsicHeight(); + mDivider.setBounds(left, top, right, bottom); + mDivider.draw(c); + } + } + @Override + public void getItemOffsets(Rect outRect, int itemPosition, RecyclerView parent) { + if (mOrientation == VERTICAL_LIST) { + outRect.set(0, 0, 0, mDivider.getIntrinsicHeight()); + } else { + outRect.set(0, 0, mDivider.getIntrinsicWidth(), 0); + } + } +} diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 09bd7384..5290aca8 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -32,10 +32,6 @@ @@ -45,8 +41,7 @@ android:layout_height="match_parent" android:id="@+id/rvKeyProfiles" android:layout_alignParentTop="true" - android:layout_alignParentLeft="true" - android:layout_alignParentStart="true"/> + /> \ No newline at end of file diff --git a/app/src/main/res/layout/card_keyprofile.xml b/app/src/main/res/layout/card_keyprofile.xml index 723e8a4e..1d2d3359 100644 --- a/app/src/main/res/layout/card_keyprofile.xml +++ b/app/src/main/res/layout/card_keyprofile.xml @@ -4,15 +4,6 @@ android:layout_width="match_parent" android:layout_height="wrap_content"> - - - - + android:layout_alignParentStart="true" + android:layout_alignParentLeft="true"/> - - \ No newline at end of file