Skip to content

Commit 94d8025

Browse files
committed
Fixed #140 : Project Selection Bug
1 parent 80f5238 commit 94d8025

File tree

2 files changed

+27
-10
lines changed

2 files changed

+27
-10
lines changed

source-code/app/src/main/java/org/buildmlearn/toolkit/adapter/SavedProjectAdapter.java

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,12 @@ public class SavedProjectAdapter extends BaseAdapter {
2222

2323
private Context mContext;
2424
private ArrayList<SavedProject> data;
25+
private int selectedPosition;
2526

2627
public SavedProjectAdapter(Context mContext, ArrayList<SavedProject> data) {
2728
this.mContext = mContext;
2829
this.data = data;
30+
selectedPosition = -1;
2931
}
3032

3133
/**
@@ -52,6 +54,15 @@ public long getItemId(int i) {
5254
return i;
5355
}
5456

57+
58+
public void setSelectedPosition(int selectedPosition) {
59+
this.selectedPosition = selectedPosition;
60+
}
61+
62+
public int getSelectedPosition() {
63+
return selectedPosition;
64+
}
65+
5566
/**
5667
* {@inheritDoc}
5768
*/
@@ -70,6 +81,12 @@ public View getView(int position, View convertView, ViewGroup parent) {
7081
holder = (ProjectHolder) convertView.getTag();
7182
}
7283

84+
if (selectedPosition == position) {
85+
convertView.setBackgroundColor(mContext.getResources().getColor(R.color.color_divider));
86+
} else {
87+
convertView.setBackgroundColor(0);
88+
}
89+
7390
SavedProject projectData = getItem(position);
7491
holder.details.setText("Modified: " + projectData.getDate() + ", Author: " + projectData.getAuthor());
7592
holder.projectName.setText(projectData.getName());

source-code/app/src/main/java/org/buildmlearn/toolkit/fragment/LoadProjectFragment.java

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import android.util.Log;
1212
import android.view.LayoutInflater;
1313
import android.view.Menu;
14+
import android.view.MenuInflater;
1415
import android.view.MenuItem;
1516
import android.view.View;
1617
import android.view.ViewGroup;
@@ -58,8 +59,6 @@ public class LoadProjectFragment extends Fragment implements AbsListView.OnItemC
5859
private ArrayList<SavedProject> savedProjects;
5960
private View selectedView = null;
6061

61-
private int selectedPosition = -1;
62-
6362
/**
6463
* {@inheritDoc}
6564
*/
@@ -136,17 +135,17 @@ public void onViewCreated(View view, Bundle savedInstanceState) {
136135
mListView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
137136
@Override
138137
public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
139-
if (selectedPosition == position) {
140-
selectedPosition = -1;
138+
if (mAdapter.getSelectedPosition() == position) {
139+
mAdapter.setSelectedPosition(-1);
141140
view.setBackgroundResource(0);
142141
restoreColorScheme();
143142
} else {
144143
if (selectedView != null) {
145144
selectedView.setBackgroundResource(0);
146145
}
147146
selectedView = view;
148-
selectedPosition = position;
149-
Log.d(TAG, "Position: " + selectedPosition);
147+
mAdapter.setSelectedPosition(position);
148+
Log.d(TAG, "Position: " + position);
150149
view.setBackgroundColor(getResources().getColor(R.color.color_divider));
151150
changeColorScheme();
152151
}
@@ -285,12 +284,12 @@ public void changeColorScheme() {
285284
activity.invalidateOptionsMenu();
286285
}
287286

288-
/**
287+
/**
289288
* {@inheritDoc}
290289
*/
291290
@Override
292-
public void onPrepareOptionsMenu(Menu menu) {
293-
super.onPrepareOptionsMenu(menu);
291+
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
292+
super.onCreateOptionsMenu(menu, inflater);
294293
if (showTemplateSelectedMenu) {
295294
activity.getMenuInflater().inflate(R.menu.menu_project_selected, menu);
296295
}
@@ -317,7 +316,7 @@ public boolean onOptionsItemSelected(MenuItem item) {
317316
@Override
318317
public void onClick(View v) {
319318
dialog.dismiss();
320-
deleteItem(selectedPosition);
319+
deleteItem(mAdapter.getSelectedPosition());
321320
restoreSelectedView();
322321
}
323322
});
@@ -336,6 +335,7 @@ private void deleteItem(int selectedPosition) {
336335
boolean deleted = file.delete();
337336
if (deleted) {
338337
savedProjects.remove(selectedPosition);
338+
mAdapter.setSelectedPosition(-1);
339339
mAdapter.notifyDataSetChanged();
340340
setEmptyText();
341341
Toast.makeText(activity, "Project Successfully Deleted!", Toast.LENGTH_SHORT).show();

0 commit comments

Comments
 (0)