Skip to content

Commit 3a4d7fa

Browse files
authored
Merge pull request BuildmLearn#321 from BuildmLearn/bug-fixes
Update of master branch
2 parents 3d836e6 + 8b20518 commit 3a4d7fa

14 files changed

+90
-12
lines changed

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

+6-4
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,10 @@
11
package org.buildmlearn.toolkit.activity;
22

33
import android.Manifest;
4-
54
import android.app.Dialog;
65
import android.app.ProgressDialog;
7-
import android.content.DialogInterface;
8-
import android.support.v7.app.AlertDialog;
96
import android.content.Context;
10-
7+
import android.content.DialogInterface;
118
import android.content.Intent;
129
import android.content.SharedPreferences;
1310
import android.content.pm.PackageManager;
@@ -39,6 +36,7 @@
3936
import android.widget.ListView;
4037
import android.widget.TextView;
4138
import android.widget.Toast;
39+
4240
import org.buildmlearn.toolkit.R;
4341
import org.buildmlearn.toolkit.ToolkitApplication;
4442
import org.buildmlearn.toolkit.constant.Constants;
@@ -824,6 +822,10 @@ private String saveDraft() {
824822
Toast.makeText(this, "Unable to perform action: No Data", Toast.LENGTH_SHORT).show();
825823
return null;
826824
}
825+
if (selectedTemplate.getItems(doc).get(0).getTagName().equals("item") && (templateId == 5 || templateId == 7)) {
826+
Toast.makeText(this, "Unable to perform action: No Meta Details", Toast.LENGTH_SHORT).show();
827+
return null;
828+
}
827829
for (Element item : selectedTemplate.getItems(doc)) {
828830
dataElement.appendChild(item);
829831
}

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

+4
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,10 @@ public View getView(int position, View convertView, ViewGroup parent) {
119119
holder.draftTitle.setText(String.format(Locale.ENGLISH, "Drafted on %s", projectData.getDate()));
120120
holder.draftIcon.setText("D");
121121
convertView.setTag(holder);
122+
if (projectData.isSelected())
123+
{
124+
convertView.setBackgroundColor(ContextCompat.getColor(mContext, R.color.color_divider));
125+
}
122126
return convertView;
123127
}
124128

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

+4
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,10 @@ public View getView(int position, View convertView, ViewGroup parent) {
119119
holder.apkName.setText(apiData.getName());
120120
holder.projectIcon.setText(apiData.getName().substring(0, 1).toUpperCase(Locale.US));
121121
convertView.setTag(holder);
122+
if (apiData.isSelected())
123+
{
124+
convertView.setBackgroundColor(ContextCompat.getColor(mContext, R.color.color_divider));
125+
}
122126
return convertView;
123127
}
124128

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

+4-2
Original file line numberDiff line numberDiff line change
@@ -324,11 +324,12 @@ public void onClick(View v) {
324324
for(int i=0;i<mAdapter.getCount();i++) {
325325
if (!mAdapter.isPositionSelected(i))
326326
{
327-
mListView.getChildAt(i).setBackgroundColor(ContextCompat.getColor(mToolkit, R.color.color_divider));
327+
draftProjects.get(i).setSelected(true);
328328
mAdapter.putSelectedPosition(i);
329329
changeColorScheme();
330330
}
331331
}
332+
mAdapter.notifyDataSetChanged();
332333
break;
333334

334335
case R.id.action_unselect_all:
@@ -363,9 +364,10 @@ public void onClick(View v) {
363364
private void unselectAll() {
364365
for (int i = 0; i < mAdapter.getCount(); i++)
365366
if (mAdapter.isPositionSelected(i)) {
366-
mListView.getChildAt(i).setBackgroundColor(0);
367+
draftProjects.get(i).setSelected(false);
367368
mAdapter.removeSelectedPosition(i);
368369
}
370+
mAdapter.notifyDataSetChanged();
369371
restoreColorScheme();
370372
}
371373

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

+4-2
Original file line numberDiff line numberDiff line change
@@ -416,11 +416,12 @@ public boolean onKey(View v, int keyCode, KeyEvent event) {
416416
for(int i=0;i<mAdapter.getCount();i++) {
417417
if (!mAdapter.isPositionSelected(i))
418418
{
419-
mListView.getChildAt(i).setBackgroundColor(ContextCompat.getColor(mToolkit, R.color.color_divider));
419+
savedApis.get(i).setSelected(true);
420420
mAdapter.putSelectedPosition(i);
421421
changeColorScheme();
422422
}
423423
}
424+
mAdapter.notifyDataSetChanged();
424425
break;
425426

426427
case R.id.action_unselect_all:
@@ -436,10 +437,11 @@ public boolean onKey(View v, int keyCode, KeyEvent event) {
436437
public void unselectAll() {
437438
for (int i = 0; i < mAdapter.getCount(); i++)
438439
if (mAdapter.isPositionSelected(i)) {
439-
mListView.getChildAt(i).setBackgroundColor(0);
440+
savedApis.get(i).setSelected(false);
440441
mAdapter.removeSelectedPosition(i);
441442
}
442443
restoreColorScheme();
444+
mAdapter.notifyDataSetChanged();
443445
}
444446

445447
/**

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

+4-2
Original file line numberDiff line numberDiff line change
@@ -456,11 +456,12 @@ public boolean onKey(View v, int keyCode, KeyEvent event) {
456456
for(int i=0;i<mAdapter.getCount();i++) {
457457
if (!mAdapter.isPositionSelected(i))
458458
{
459-
mListView.getChildAt(i).setBackgroundColor(ContextCompat.getColor(mToolkit, R.color.color_divider));
459+
savedProjects.get(i).setSelected(true);
460460
mAdapter.putSelectedPosition(i);
461461
changeColorScheme();
462462
}
463463
}
464+
mAdapter.notifyDataSetChanged();
464465
break;
465466

466467
case R.id.action_unselect_all:
@@ -476,10 +477,11 @@ public boolean onKey(View v, int keyCode, KeyEvent event) {
476477
private void unselectAll() {
477478
for (int i = 0; i < mAdapter.getCount(); i++)
478479
if (mAdapter.isPositionSelected(i)) {
479-
mListView.getChildAt(i).setBackgroundColor(0);
480+
savedProjects.get(i).setSelected(false);
480481
mAdapter.removeSelectedPosition(i);
481482
}
482483
restoreColorScheme();
484+
mAdapter.notifyDataSetChanged();
483485
}
484486

485487
/**

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

+14
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
import org.buildmlearn.toolkit.R;
2424
import org.buildmlearn.toolkit.ToolkitApplication;
2525
import org.buildmlearn.toolkit.activity.DeepLinkerActivity;
26+
import org.buildmlearn.toolkit.utilities.NetworkUtils;
2627
import org.buildmlearn.toolkit.utilities.RestoreThread;
2728

2829
import java.io.File;
@@ -73,6 +74,19 @@ public boolean onPreferenceClick(Preference preference) {
7374
}
7475
});
7576

77+
Preference rate_preference=findPreference(getString(R.string.pref_rate_key));
78+
rate_preference.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
79+
@Override
80+
public boolean onPreferenceClick(Preference preference) {
81+
if(NetworkUtils.isNetworkAvailable(getActivity()))
82+
startActivity(new Intent(Intent.ACTION_VIEW,
83+
Uri.parse("http://play.google.com/store/apps/details?id=" + getActivity().getPackageName())));
84+
else
85+
Toast.makeText(getActivity(), R.string.settings_network_unavailable,Toast.LENGTH_SHORT).show();
86+
return true;
87+
}
88+
});
89+
7690
Preference restoreProject = findPreference(getString(R.string.key_restore_project));
7791
restoreProject.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
7892
@Override

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

+9
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,15 @@ public class SavedApi {
1717
private long unformattedDate;
1818
private String name;
1919
private String author;
20+
private boolean isSelected = false;
21+
22+
public boolean isSelected() {
23+
return isSelected;
24+
}
25+
26+
public void setSelected(boolean selected) {
27+
isSelected = selected;
28+
}
2029

2130
public SavedApi(File file, String fileName, long date) {
2231

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

+9
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,15 @@ public class SavedProject {
1818
private String type;
1919
private String author;
2020
private long unformattedDate;
21+
private boolean isSelected = false;
22+
23+
public boolean isSelected() {
24+
return isSelected;
25+
}
26+
27+
public void setSelected(boolean selected) {
28+
isSelected = selected;
29+
}
2130

2231
public SavedProject(File file, String fileName, long date, String type, String fullPath) {
2332

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

+8
Original file line numberDiff line numberDiff line change
@@ -224,6 +224,14 @@ public void onClick(View v) {
224224
isValidated = false;
225225
}
226226

227+
for (int i = 0; i < options.size(); i++) {
228+
for (int j = 0; j < i; j++) {
229+
if (!options.get(i).getText().toString().trim().isEmpty() && options.get(i).getText().toString().trim().equalsIgnoreCase(options.get(j).getText().toString().trim())) {
230+
Toast.makeText(context, context.getString(R.string.same_options), Toast.LENGTH_SHORT).show();
231+
isValidated = false;
232+
}
233+
}
234+
}
227235
if (isValidated) {
228236
dialog.dismiss();
229237
ArrayList<String> answerOptions = new ArrayList<>();

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

+7-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
import android.view.View;
1111
import android.widget.BaseAdapter;
1212
import android.widget.EditText;
13-
13+
import android.widget.Toast;
1414

1515
import org.buildmlearn.toolkit.R;
1616
import org.buildmlearn.toolkit.matchtemplate.fragment.SplashFragment;
@@ -61,6 +61,9 @@ private static boolean validated(Context context, EditText title, EditText first
6161
second_list_title.hasFocus();
6262
second_list_title.setError(context.getString(R.string.match_second_list_title));
6363
return false;
64+
} else if (first_list_titleText.equalsIgnoreCase(second_list_titleText)){
65+
Toast.makeText(context, "Title of two lists cannot be same.", Toast.LENGTH_SHORT).show();
66+
return false;
6467
}
6568

6669
return true;
@@ -82,6 +85,9 @@ private static boolean validated(Context context, EditText first_list_title, Edi
8285
second_list_title.hasFocus();
8386
second_list_title.setError(context.getString(R.string.match_second_list_title));
8487
return false;
88+
} else if (second_list_titleText.equals(first_list_titleText)){
89+
Toast.makeText(context, "Two options cannot be same.", Toast.LENGTH_SHORT).show();
90+
return false;
8591
}
8692

8793
return true;

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

+9-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616
import android.widget.RadioButton;
1717
import android.widget.Toast;
1818

19-
2019
import org.buildmlearn.toolkit.R;
2120
import org.buildmlearn.toolkit.activity.TemplateEditor;
2221
import org.buildmlearn.toolkit.views.TextViewPlus;
@@ -222,6 +221,15 @@ public void onClick(View v) {
222221
isValidated = false;
223222
}
224223

224+
for (int i = 0; i < options.size(); i++) {
225+
for (int j = 0; j < i; j++) {
226+
if (!options.get(i).getText().toString().trim().isEmpty() && options.get(i).getText().toString().trim().equalsIgnoreCase(options.get(j).getText().toString().trim())) {
227+
Toast.makeText(context, context.getString(R.string.same_options), Toast.LENGTH_SHORT).show();
228+
isValidated = false;
229+
}
230+
}
231+
}
232+
225233
if (isValidated) {
226234
dialog.dismiss();
227235
ArrayList<String> answerOptions = new ArrayList<>();

source-code/app/src/main/res/values/strings.xml

+4
Original file line numberDiff line numberDiff line change
@@ -413,5 +413,9 @@
413413
<string name="valid_msg_name">Enter valid name</string>
414414
<string name="same_options">Two or more options are same.</string>
415415
<string name="time_zero_error">Time can\'t be zero</string>
416+
<string name="pref_rate_title">Rate Toolkit</string>
417+
<string name="pref_rate_summary">Rate our app on Play Store</string>
418+
<string name="pref_rate_key">rate</string>
419+
<string name="settings_network_unavailable">Network not available</string>
416420
</resources>
417421

source-code/app/src/main/res/xml/fragment_settings.xml

+4
Original file line numberDiff line numberDiff line change
@@ -24,4 +24,8 @@
2424

2525
</PreferenceCategory>
2626

27+
<PreferenceScreen
28+
android:key="@string/pref_rate_key"
29+
android:title="@string/pref_rate_title"
30+
android:summary="@string/pref_rate_summary"/>
2731
</PreferenceScreen>

0 commit comments

Comments
 (0)