Skip to content

Commit 6688dda

Browse files
committed
git push origin bug-fixesMerge branch 'vishwesh3-bug-fixes' into bug-fixes
2 parents 7bc33d6 + 24d05a1 commit 6688dda

17 files changed

+274
-132
lines changed

source-code/app/src/main/java/org/buildmlearn/toolkit/activity/TemplateEditor.java

+11-16
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
import android.os.Handler;
1616
import android.os.Message;
1717
import android.preference.PreferenceManager;
18+
import android.support.design.widget.Snackbar;
1819
import android.support.v4.app.ActivityCompat;
1920
import android.support.v4.content.ContextCompat;
2021
import android.support.v7.app.ActionBar;
@@ -365,25 +366,19 @@ public boolean onOptionsItemSelected(MenuItem item) {
365366

366367
switch (id) {
367368
case R.id.action_delete:
368-
369-
final AlertDialog dialog = new AlertDialog.Builder(this)
370-
.setTitle(R.string.dialog_delete_title)
371-
.setMessage(R.string.dialog_delete_msg)
372-
.setPositiveButton(R.string.dialog_yes, null)
373-
.setNegativeButton(R.string.dialog_no, null)
374-
.create();
375-
dialog.show();
376-
377-
dialog.getButton(DialogInterface.BUTTON_POSITIVE).setOnClickListener(new View.OnClickListener() {
369+
final int restorePosition = selectedPosition;
370+
final Object object = selectedTemplate.deleteItem(TemplateEditor.this, selectedPosition);
371+
selectedPosition = -1;
372+
restoreSelectedView();
373+
Snackbar.make(findViewById(R.id.relative_layout),
374+
R.string.snackbar_deleted_message,Snackbar.LENGTH_LONG)
375+
.setAction(R.string.snackbar_undo, new View.OnClickListener() {
378376
@Override
379377
public void onClick(View v) {
380-
dialog.dismiss();
381-
selectedTemplate.deleteItem(TemplateEditor.this, selectedPosition);
382-
selectedPosition = -1;
383-
restoreSelectedView();
378+
selectedTemplate.restoreItem(TemplateEditor.this,restorePosition,object);
379+
Snackbar.make(v,R.string.snackbar_restored_message,Snackbar.LENGTH_LONG).show();
384380
}
385-
});
386-
381+
}).show();
387382
break;
388383
case R.id.action_edit:
389384
selectedTemplate.editItem(this, selectedPosition);

source-code/app/src/main/java/org/buildmlearn/toolkit/model/TemplateInterface.java

+3-1
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,9 @@ public interface TemplateInterface extends Serializable {
8686
* @param position Position of the item to be removed
8787
* @brief Remove an item form template data list
8888
*/
89-
void deleteItem(Activity activity, int position);
89+
Object deleteItem(Activity activity, int position);
90+
91+
void restoreItem(Activity activity, int position,Object object);
9092

9193

9294
ArrayList<Element> getItems(Document doc);

source-code/app/src/main/java/org/buildmlearn/toolkit/templates/ComprehensionAdapter.java

+12-16
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import android.content.Context;
44
import android.content.DialogInterface;
5+
import android.support.design.widget.Snackbar;
56
import android.support.v4.content.ContextCompat;
67
import android.support.v7.app.AlertDialog;
78
import android.view.LayoutInflater;
@@ -130,26 +131,21 @@ public void onClick(View v) {
130131
holder.delete.setOnClickListener(new View.OnClickListener() {
131132
@Override
132133
public void onClick(View v) {
133-
134-
final AlertDialog dialog = new AlertDialog.Builder(context)
135-
.setTitle(R.string.dialog_delete_title)
136-
.setMessage(R.string.dialog_delete_msg)
137-
.setPositiveButton(R.string.dialog_yes, null)
138-
.setNegativeButton(R.string.dialog_no, null)
139-
.create();
140-
dialog.show();
141-
142-
dialog.getButton(DialogInterface.BUTTON_POSITIVE).setOnClickListener(new View.OnClickListener() {
134+
final ComprehensionModel comprehensionModel = comprehensionData.get(position);
135+
comprehensionData.remove(position);
136+
notifyDataSetChanged();
137+
Snackbar.make(v,R.string.snackbar_deleted_message,Snackbar.LENGTH_LONG)
138+
.setAction(R.string.snackbar_undo, new View.OnClickListener() {
143139
@Override
144140
public void onClick(View v) {
145-
comprehensionData.remove(position);
141+
comprehensionData.add(position,comprehensionModel);
146142
notifyDataSetChanged();
147-
dialog.dismiss();
148-
149-
((TemplateEditor) context).restoreSelectedView();
150-
expandedPostion = -1;
143+
Snackbar.make(v,R.string.snackbar_restored_message,Snackbar.LENGTH_LONG).show();
151144
}
152-
});
145+
}).show();
146+
147+
((TemplateEditor) context).restoreSelectedView();
148+
expandedPostion = -1;
153149
}
154150
});
155151
convertView.setTag(holder);

source-code/app/src/main/java/org/buildmlearn/toolkit/templates/ComprehensionTemplate.java

+40-1
Original file line numberDiff line numberDiff line change
@@ -454,16 +454,55 @@ public void onClick(View v) {
454454
}
455455

456456
@Override
457-
public void deleteItem(Activity activity, int position) {
457+
public Object deleteItem(Activity activity, int position) {
458+
ComprehensionMetaModel comprehensionMetaModel =null;
459+
ComprehensionModel comprehensionModel=null;
458460
if (position == -2) {
461+
comprehensionMetaModel = metaData.get(0);
459462
metaData.remove(0);
460463
setEmptyView(activity);
461464
metaAdapter.notifyDataSetChanged();
462465
} else {
466+
comprehensionModel = comprehensionData.get(position);
463467
comprehensionData.remove(position);
464468
setEmptyView(activity);
465469
adapter.notifyDataSetChanged();
466470
}
471+
if (comprehensionMetaModel==null)
472+
{
473+
return comprehensionModel;
474+
}else
475+
{
476+
return comprehensionMetaModel;
477+
}
478+
}
479+
480+
@Override
481+
public void restoreItem(Activity activity, int position, Object object) {
482+
if (position==-2)
483+
{
484+
if (object instanceof ComprehensionMetaModel)
485+
{
486+
ComprehensionMetaModel comprehensionMetaModel = (ComprehensionMetaModel)object;
487+
if (comprehensionMetaModel!=null)
488+
{
489+
metaData.add(comprehensionMetaModel);
490+
metaAdapter.notifyDataSetChanged();
491+
}
492+
}
493+
}else
494+
{
495+
if (object instanceof ComprehensionModel)
496+
{
497+
ComprehensionModel comprehensionModel = (ComprehensionModel)object;
498+
if (comprehensionModel!=null)
499+
{
500+
comprehensionData.add(position,comprehensionModel);
501+
adapter.notifyDataSetChanged();
502+
}
503+
}
504+
}
505+
467506
}
468507

469508
@Override

source-code/app/src/main/java/org/buildmlearn/toolkit/templates/DictationTemplate.java

+17-1
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414

1515

1616
import org.buildmlearn.toolkit.R;
17+
import org.buildmlearn.toolkit.dictationtemplate.data.DictModel;
1718
import org.buildmlearn.toolkit.dictationtemplate.fragment.SplashFragment;
1819
import org.buildmlearn.toolkit.model.Template;
1920
import org.buildmlearn.toolkit.model.TemplateInterface;
@@ -226,10 +227,25 @@ public void onClick(View v) {
226227
}
227228

228229
@Override
229-
public void deleteItem(Activity activity, int position) {
230+
public Object deleteItem(Activity activity, int position) {
231+
DictationModel dictationModel = dictData.get(position);
230232
dictData.remove(position);
231233
setEmptyView(activity);
232234
adapter.notifyDataSetChanged();
235+
return dictationModel;
236+
}
237+
238+
@Override
239+
public void restoreItem(Activity activity, int position, Object object) {
240+
if (object instanceof DictationModel)
241+
{
242+
DictationModel dictationModel = (DictationModel)object;
243+
if (dictationModel!=null)
244+
{
245+
dictData.add(position,dictationModel);
246+
adapter.notifyDataSetChanged();
247+
}
248+
}
233249
}
234250

235251
@Override

source-code/app/src/main/java/org/buildmlearn/toolkit/templates/FlashCardAdapter.java

+18-20
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import android.content.Context;
44
import android.content.DialogInterface;
5+
import android.support.design.widget.Snackbar;
56
import android.support.v7.app.AlertDialog;
67
import android.view.LayoutInflater;
78
import android.view.View;
@@ -88,26 +89,23 @@ public void onClick(View v) {
8889
holder.delete.setOnClickListener(new View.OnClickListener() {
8990
@Override
9091
public void onClick(View v) {
91-
92-
final AlertDialog dialog = new AlertDialog.Builder(mContext)
93-
.setTitle(R.string.info_template_delete)
94-
.setMessage(R.string.info_delete_item_content)
95-
.setPositiveButton(R.string.dialog_yes, null)
96-
.setNegativeButton(R.string.dialog_no, null)
97-
.create();
98-
dialog.show();
99-
100-
dialog.getButton(DialogInterface.BUTTON_POSITIVE).setOnClickListener(new View.OnClickListener() {
101-
@Override
102-
public void onClick(View v) {
103-
mData.remove(position);
104-
notifyDataSetChanged();
105-
dialog.dismiss();
106-
107-
((TemplateEditor) mContext).restoreSelectedView();
108-
}
109-
});
110-
92+
final FlashCardModel flashCardModel = mData.get(position);
93+
mData.remove(position);
94+
notifyDataSetChanged();
95+
notifyDataSetChanged();
96+
Snackbar.make(v,R.string.snackbar_deleted_message,Snackbar.LENGTH_LONG)
97+
.setAction(R.string.snackbar_undo, new View.OnClickListener() {
98+
@Override
99+
public void onClick(View v) {
100+
mData.add(position,flashCardModel);
101+
notifyDataSetChanged();
102+
Snackbar.make(v,R.string.snackbar_restored_message,Snackbar.LENGTH_LONG).show();
103+
}
104+
}).show();
105+
106+
107+
108+
((TemplateEditor) mContext).restoreSelectedView();
111109
}
112110
});
113111

source-code/app/src/main/java/org/buildmlearn/toolkit/templates/FlashTemplate.java

+17-1
Original file line numberDiff line numberDiff line change
@@ -265,10 +265,26 @@ private boolean validateData(EditText question, EditText answer, EditText answer
265265
}
266266

267267
@Override
268-
public void deleteItem(Activity activity, int position) {
268+
public Object deleteItem(Activity activity, int position) {
269+
FlashCardModel flashCardModel = mData.get(position);
269270
mData.remove(position);
270271
setEmptyView(activity);
271272
mAdapter.notifyDataSetChanged();
273+
274+
return flashCardModel;
275+
}
276+
277+
@Override
278+
public void restoreItem(Activity activity, int position, Object object) {
279+
if (object instanceof FlashCardModel)
280+
{
281+
FlashCardModel flashCardModel = (FlashCardModel)object;
282+
if (flashCardModel!=null)
283+
{
284+
mData.add(position,flashCardModel);
285+
mAdapter.notifyDataSetChanged();
286+
}
287+
}
272288
}
273289

274290
@Override

source-code/app/src/main/java/org/buildmlearn/toolkit/templates/InfoAdapter.java

+15-16
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import android.content.Context;
44
import android.content.DialogInterface;
5+
import android.support.design.widget.Snackbar;
56
import android.support.v7.app.AlertDialog;
67
import android.view.LayoutInflater;
78
import android.view.View;
@@ -72,25 +73,23 @@ public View getView(final int position, View convertView, ViewGroup parent) {
7273
holder.deleteButton.setOnClickListener(new View.OnClickListener() {
7374
@Override
7475
public void onClick(View v) {
76+
final InfoModel infoModel = data.get(position);
77+
data.remove(position);
78+
notifyDataSetChanged();
79+
Snackbar.make(v,R.string.snackbar_deleted_message,Snackbar.LENGTH_LONG)
80+
.setAction(R.string.snackbar_undo, new View.OnClickListener() {
81+
@Override
82+
public void onClick(View v) {
83+
data.add(position,infoModel);
84+
notifyDataSetChanged();
85+
Snackbar.make(v,R.string.snackbar_restored_message,Snackbar.LENGTH_LONG).show();
86+
}
87+
}).show();
7588

76-
final AlertDialog dialog = new AlertDialog.Builder(mContext)
77-
.setTitle(R.string.info_template_delete)
78-
.setMessage(R.string.info_delete_item_content)
79-
.setPositiveButton(R.string.dialog_yes, null)
80-
.setNegativeButton(R.string.dialog_no, null)
81-
.create();
82-
dialog.show();
8389

84-
dialog.getButton(DialogInterface.BUTTON_POSITIVE).setOnClickListener(new View.OnClickListener() {
85-
@Override
86-
public void onClick(View v) {
87-
data.remove(position);
88-
notifyDataSetChanged();
89-
dialog.dismiss();
9090

91-
((TemplateEditor) mContext).restoreSelectedView();
92-
}
93-
});
91+
92+
((TemplateEditor) mContext).restoreSelectedView();
9493
}
9594
});
9695

source-code/app/src/main/java/org/buildmlearn/toolkit/templates/InfoTemplate.java

+15-3
Original file line numberDiff line numberDiff line change
@@ -192,13 +192,25 @@ public void onClick(View v) {
192192
}
193193

194194
@Override
195-
public void deleteItem(Activity activity, int position) {
196-
197-
195+
public Object deleteItem(Activity activity, int position) {
196+
InfoModel infoModel = infoData.get(position);
198197
infoData.remove(position);
199198
setEmptyView(activity);
200199
adapter.notifyDataSetChanged();
200+
return infoModel;
201+
}
201202

203+
@Override
204+
public void restoreItem(Activity activity, int position, Object object) {
205+
if (object instanceof InfoModel)
206+
{
207+
InfoModel infoModel = (InfoModel)object;
208+
if (infoModel!=null)
209+
{
210+
infoData.add(position,infoModel);
211+
adapter.notifyDataSetChanged();
212+
}
213+
}
202214
}
203215

204216
@Override

source-code/app/src/main/java/org/buildmlearn/toolkit/templates/LearnSpellingAdapter.java

+15-19
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import android.content.Context;
44
import android.content.DialogInterface;
5+
import android.support.design.widget.Snackbar;
56
import android.support.v7.app.AlertDialog;
67
import android.view.LayoutInflater;
78
import android.view.View;
@@ -72,25 +73,20 @@ public View getView(final int position, View convertView, ViewGroup parent) {
7273
holder.deleteButton.setOnClickListener(new View.OnClickListener() {
7374
@Override
7475
public void onClick(View v) {
75-
76-
final AlertDialog dialog = new AlertDialog.Builder(mContext)
77-
.setTitle(R.string.info_template_delete)
78-
.setMessage(R.string.info_delete_item_content)
79-
.setPositiveButton(R.string.dialog_yes, null)
80-
.setNegativeButton(R.string.dialog_no, null)
81-
.create();
82-
dialog.show();
83-
84-
dialog.getButton(DialogInterface.BUTTON_POSITIVE).setOnClickListener(new View.OnClickListener() {
85-
@Override
86-
public void onClick(View v) {
87-
data.remove(position);
88-
notifyDataSetChanged();
89-
dialog.dismiss();
90-
91-
((TemplateEditor) mContext).restoreSelectedView();
92-
}
93-
});
76+
final LearnSpellingModel learnSpellingModel = data.get(position);
77+
data.remove(position);
78+
notifyDataSetChanged();
79+
Snackbar.make(v,R.string.snackbar_deleted_message,Snackbar.LENGTH_LONG)
80+
.setAction(R.string.snackbar_undo, new View.OnClickListener() {
81+
@Override
82+
public void onClick(View v) {
83+
data.add(position,learnSpellingModel);
84+
notifyDataSetChanged();
85+
Snackbar.make(v,R.string.snackbar_restored_message,Snackbar.LENGTH_LONG).show();
86+
}
87+
}).show();
88+
89+
((TemplateEditor) mContext).restoreSelectedView();
9490
}
9591
});
9692

0 commit comments

Comments
 (0)