Add menu to the entries to rename

This commit is contained in:
Jakob Nixdorf 2017-07-03 16:48:53 +02:00
parent 76fd504c46
commit 3ddd8788c7
No known key found for this signature in database
GPG key ID: BE99BF86574A7DBC
6 changed files with 64 additions and 27 deletions

View file

@ -25,8 +25,11 @@ package org.shadowice.flocke.andotp;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.support.v7.widget.PopupMenu;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
@ -138,27 +141,49 @@ public class EntriesCardAdapter extends RecyclerView.Adapter<EntriesCardAdapter.
protected TextView OTPValue;
protected TextView OTPLabel;
protected ImageView editButton;
protected LinearLayout customPeriodLayout;
protected TextView customPeriod;
protected ImageView menuButton;
public EntryViewHolder(View v) {
public EntryViewHolder(final View v) {
super(v);
OTPValue = (TextView) v.findViewById(R.id.textViewOTP);
OTPLabel = (TextView) v.findViewById(R.id.textViewLabel);
editButton = (ImageView) v.findViewById(R.id.editImage);
customPeriodLayout = (LinearLayout) v.findViewById(R.id.customPeriodLayout);
customPeriod = (TextView) v.findViewById(R.id.customPeriod);
menuButton = (ImageView) v.findViewById(R.id.menuButton);
editButton.setOnClickListener(new View.OnClickListener() {
menuButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
eventCallback.onEditButtonClicked(getAdapterPosition());
showPopupMenu(view);
}
});
}
private void showPopupMenu(View view) {
View menuItemView = view.findViewById(R.id.menuButton);
PopupMenu popup = new PopupMenu(view.getContext(), menuItemView);
MenuInflater inflate = popup.getMenuInflater();
inflate.inflate(R.menu.menu_popup, popup.getMenu());
popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
int id = item.getItemId();
if (id == R.id.editLabel) {
eventCallback.onEditButtonClicked(getAdapterPosition());
return true;
} else {
return false;
}
}
});
popup.show();
}
@Override
public void onItemSelected() {
if (eventCallback != null)
@ -176,6 +201,6 @@ public class EntriesCardAdapter extends RecyclerView.Adapter<EntriesCardAdapter.
void onMoveEventStart();
void onMoveEventStop();
void onEditButtonClicked(int pos);
void onEditButtonClicked(final int pos);
}
}

View file

@ -332,7 +332,7 @@ public class MainActivity extends AppCompatActivity {
}
@Override
public void onEditButtonClicked(int pos) {
public void onEditButtonClicked(final int pos) {
editEntryLabel(pos);
}
});
@ -464,15 +464,12 @@ public class MainActivity extends AppCompatActivity {
if (id == R.id.action_export) {
exportJSONWithWarning();
return true;
} else if (id == R.id.action_import) {
importJSONWithPermissions();
return true;
} else if (id == R.id.action_about){
showAbout();
return true;
}
return super.onOptionsItemSelected(item);

View file

@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24.0"
android:viewportHeight="24.0">
<path
android:fillColor="#FF727272"
android:pathData="M12,8c1.1,0 2,-0.9 2,-2s-0.9,-2 -2,-2 -2,0.9 -2,2 0.9,2 2,2zM12,10c-1.1,0 -2,0.9 -2,2s0.9,2 2,2 2,-0.9 2,-2 -0.9,-2 -2,-2zM12,16c-1.1,0 -2,0.9 -2,2s0.9,2 2,2 2,-0.9 2,-2 -0.9,-2 -2,-2z"/>
</vector>

View file

@ -23,31 +23,20 @@
android:layout_alignParentTop="true"
android:layout_alignParentStart="true" />
<LinearLayout
<TextView
android:id="@+id/textViewLabel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/textViewOTP">
<TextView
android:id="@+id/textViewLabel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium" />
<ImageView
android:id="@+id/editImage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/activity_horizontal_margin"
android:src="@drawable/ic_edit_gray" />
</LinearLayout>
android:layout_below="@+id/textViewOTP"
android:textAppearance="?android:attr/textAppearanceMedium" />
<LinearLayout
android:id="@+id/customPeriodLayout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_alignParentEnd="true"
android:layout_toStartOf="@+id/menuButton"
android:layout_marginEnd="@dimen/activity_horizontal_margin"
android:visibility="gone"
android:orientation="horizontal" >
@ -63,6 +52,14 @@
android:textStyle="bold" />
</LinearLayout>
<ImageView
android:id="@+id/menuButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_alignParentEnd="true"
android:src="@drawable/ic_more_vert_gray"/>
</RelativeLayout>
</android.support.v7.widget.CardView>

View file

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/editLabel"
android:title="@string/menu_edit_label" />
</menu>

View file

@ -10,6 +10,7 @@
<string name="format_custom_period">%d s</string>
<string name="menu_about">About</string>
<string name="menu_edit_label">Edit label</string>
<string name="menu_export">Export (JSON)</string>
<string name="menu_import">Import (JSON)</string>
<string name="menu_submenu_backup">Import / Export</string>