Replace ListActivity with regular Activity for GroupList

This commit is contained in:
vhschlenker
2016-05-27 23:59:04 +02:00
parent 2afc97ee9d
commit 0e5b1dbbfc
4 changed files with 37 additions and 17 deletions

View File

@@ -30,6 +30,7 @@ import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.ListAdapter;
@@ -50,6 +51,9 @@ import com.keepassdroid.view.ClickView;
import com.keepassdroid.view.GroupViewOnlyView;
public abstract class GroupBaseActivity extends LockCloseListActivity {
protected ListView mList;
protected ListAdapter mAdapter;
public static final String KEY_ENTRY = "entry";
public static final String KEY_MODE = "mode";
@@ -68,18 +72,12 @@ public abstract class GroupBaseActivity extends LockCloseListActivity {
Database db = App.getDB();
if ( db.dirty.contains(mGroup) ) {
db.dirty.remove(mGroup);
BaseAdapter adapter = (BaseAdapter) getListAdapter();
adapter.notifyDataSetChanged();
((BaseAdapter) mAdapter).notifyDataSetChanged();
}
}
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
super.onListItemClick(l, v, position, id);
ListAdapter adapt = getListAdapter();
ClickView cv = (ClickView) adapt.getView(position, null, null);
ClickView cv = (ClickView) mAdapter.getView(position, null, null);
cv.onClick();
}
@@ -106,9 +104,9 @@ public abstract class GroupBaseActivity extends LockCloseListActivity {
}
protected void styleScrollBars() {
ListView lv = getListView();
lv.setScrollBarStyle(View.SCROLLBARS_INSIDE_INSET);
lv.setTextFilterEnabled(true);
ensureCorrectListView();
mList.setScrollBarStyle(View.SCROLLBARS_INSIDE_INSET);
mList.setTextFilterEnabled(true);
}
@@ -136,6 +134,29 @@ public abstract class GroupBaseActivity extends LockCloseListActivity {
App.getDB().drawFactory.assignDrawableTo(iv, getResources(), mGroup.getIcon());
}
}
protected void setListAdapter(ListAdapter adapter) {
ensureCorrectListView();
mAdapter = adapter;
mList.setAdapter(adapter);
}
protected ListView getListView() {
ensureCorrectListView();
return mList;
}
private void ensureCorrectListView(){
mList = (ListView)findViewById(R.id.group_list);
mList.setOnItemClickListener(
new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View v, int position, long id)
{
onListItemClick((ListView)parent, v, position, id);
}
}
);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
@@ -229,8 +250,7 @@ public abstract class GroupBaseActivity extends LockCloseListActivity {
db.dirty.remove(mGroup);
// Tell the adapter to refresh it's list
BaseAdapter adapter = (BaseAdapter) getListAdapter();
adapter.notifyDataSetChanged();
((BaseAdapter) mAdapter).notifyDataSetChanged();
}

View File

@@ -19,11 +19,11 @@
*/
package com.keepassdroid;
import android.app.ListActivity;
import android.app.Activity;
import com.keepassdroid.timeout.TimeoutHelper;
public abstract class LockingListActivity extends ListActivity {
public abstract class LockingListActivity extends Activity {
@Override
protected void onPause() {
super.onPause();

View File

@@ -53,7 +53,7 @@ public class GroupViewOnlyView extends RelativeLayout {
View divider2 = findViewById(R.id.divider2);
divider2.setVisibility(INVISIBLE);
View list = findViewById(android.R.id.list);
View list = findViewById(R.id.group_list);
LayoutParams lp = (RelativeLayout.LayoutParams) list.getLayoutParams();
lp.addRule(ALIGN_PARENT_BOTTOM, TRUE);

View File

@@ -42,7 +42,7 @@
android:scaleType="fitXY"
android:tint="@color/blue_highlight"
android:src="@android:drawable/divider_horizontal_dark"/>
<ListView android:id="@android:id/list"
<ListView android:id="@+id/group_list"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_above="@id/divider2"