Added an option to mark all unverified events as unknown (to get rid of warning about unvalidated events if you have a lot of them)
This commit is contained in:
@@ -426,6 +426,9 @@ public class LogManagerControlActivity extends AppCompatActivity {
|
||||
Log.i(TAG, "exception starting settings activity " + ex.toString());
|
||||
}
|
||||
return true;
|
||||
case R.id.action_mark_unknown:
|
||||
Log.i(TAG,"action_mark_unknown");
|
||||
mLm.mWac.markUnverifiedEventsAsUnknown();
|
||||
|
||||
default:
|
||||
return super.onOptionsItemSelected(item);
|
||||
|
||||
@@ -34,6 +34,7 @@ import org.json.JSONObject;
|
||||
import java.io.UnsupportedEncodingException;
|
||||
import java.text.DateFormat;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.Iterator;
|
||||
@@ -49,7 +50,6 @@ public abstract class WebApiConnection {
|
||||
private String mAuthToken;
|
||||
|
||||
|
||||
|
||||
public interface JSONObjectCallback {
|
||||
public void accept(JSONObject retValObj);
|
||||
}
|
||||
@@ -115,7 +115,7 @@ public abstract class WebApiConnection {
|
||||
|
||||
|
||||
public boolean authenticate(final String uname, final String passwd, StringCallback callback) {
|
||||
Log.e(TAG,"WebApiConnection.authenticate(username, password, callback) Not Implemented");
|
||||
Log.e(TAG, "WebApiConnection.authenticate(username, password, callback) Not Implemented");
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -133,4 +133,99 @@ public abstract class WebApiConnection {
|
||||
return (mAuthToken);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Mark all of the events with IDs contained in eventList as unknown type.
|
||||
* @param eventList list of String IDs of the events to mark as unknown.
|
||||
* @return true if request sent successfully or false.
|
||||
*/
|
||||
private boolean markEventsAsUnknown(ArrayList<String>eventList) {
|
||||
if (eventList.size()>0) {
|
||||
Log.i(TAG,"markEventsAsUnknown - eventList.size()="+eventList.size());
|
||||
Log.i(TAG,"markEventsAsUnknown - eventList(0) = "+eventList.get(0));
|
||||
getEvent(eventList.get(0), new WebApiConnection.JSONObjectCallback() {
|
||||
@Override
|
||||
public void accept(JSONObject eventObj) {
|
||||
Log.v(TAG, "markEventsAsUnknown.getEvent.callback: "+eventObj);
|
||||
if (eventObj != null) {
|
||||
Log.v(TAG, "markEventsAsUnknown.getEvent.callback: eventObj=" + eventObj.toString());
|
||||
try {
|
||||
eventObj.put("type", "Unknown");
|
||||
String notesStr = eventObj.getString("desc");
|
||||
if (notesStr == null) notesStr = new String("");
|
||||
notesStr = notesStr + " Set to Unknown automatically by OSD Android App";
|
||||
eventObj.put("desc", notesStr);
|
||||
updateEvent(eventObj,new WebApiConnection.JSONObjectCallback() {
|
||||
@Override
|
||||
public void accept(JSONObject eventObj) {
|
||||
if (eventObj != null) {
|
||||
Log.i(TAG, "markEventsAsUnknown.updateEvent.callback" + eventObj.toString());
|
||||
// Remove the first item from the list,then call this whole procedure again to modify the next one on the list.
|
||||
eventList.remove(0);
|
||||
markEventsAsUnknown(eventList);
|
||||
} else {
|
||||
Log.e(TAG, "markEventsAsUnknown.updateEvent.callback - eventObj is null");
|
||||
}
|
||||
}
|
||||
});
|
||||
} catch (JSONException e) {
|
||||
Log.e(TAG,"markEventsAsUnknown.getEvent.callback: Error editing eventObj");
|
||||
}
|
||||
} else {
|
||||
mUtil.showToast("Failed to Retrieve Event from Remote Database");
|
||||
return;
|
||||
}
|
||||
}
|
||||
});
|
||||
} else {
|
||||
Log.i(TAG,"markEventsAsUnknown(): No more events to Modify");
|
||||
mUtil.showToast("No unvalidated events to modify :)");
|
||||
|
||||
}
|
||||
return(true);
|
||||
}
|
||||
|
||||
/**
|
||||
* Mark all unverified events in the remote database as unknown
|
||||
*
|
||||
* @return true if request is successful or false.
|
||||
*/
|
||||
public boolean markUnverifiedEventsAsUnknown() {
|
||||
if (getEvents((JSONObject remoteEventsObj) -> {
|
||||
Log.v(TAG, "markUnverifiedEventsAsUnknown.getEvents.Callback()");
|
||||
Boolean haveUnvalidatedEvent = false;
|
||||
if (remoteEventsObj == null) {
|
||||
Log.e(TAG, "markUnverifiedEventsAsUnknown.getEvents.Callback: Error Retrieving events");
|
||||
} else {
|
||||
try {
|
||||
JSONArray eventsArray = remoteEventsObj.getJSONArray("events");
|
||||
ArrayList<String> unvalidatedEventsList = new ArrayList<String>();
|
||||
for (int i = eventsArray.length() - 1; i >= 0; i--) {
|
||||
JSONObject eventObj = eventsArray.getJSONObject(i);
|
||||
String typeStr = eventObj.getString("type");
|
||||
if (typeStr.equals("null") || typeStr.equals("")) {
|
||||
haveUnvalidatedEvent = true;
|
||||
unvalidatedEventsList.add(eventObj.getString("id"));
|
||||
}
|
||||
}
|
||||
Log.v(TAG, "markUnverifiedEventsAsUnknown.getEvents.onFinish.callback - haveUnvalidatedEvent = " +
|
||||
haveUnvalidatedEvent);
|
||||
markEventsAsUnknown(unvalidatedEventsList);
|
||||
|
||||
} catch (JSONException e) {
|
||||
Log.e(TAG, "markUnverifiedEventsAsUnknown.getEvents.onFinish(): Error Parsing remoteEventsObj: " + e.getMessage());
|
||||
//mUtil.showToast("Error Parsing remoteEventsObj - this should not happen!!!");
|
||||
}
|
||||
}
|
||||
})) {
|
||||
Log.v(TAG, "markUnverifiedEventsAsUnknown.getEvents - requested events");
|
||||
} else {
|
||||
Log.v(TAG, "markUnverifiedEventsAsUnknown.getEvents - Not Logged In");
|
||||
|
||||
}
|
||||
|
||||
|
||||
return (true);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -5,6 +5,10 @@
|
||||
android:id="@+id/pruneDatabaseMenuItem"
|
||||
app:showAsAction="never|withText"
|
||||
android:title="@string/prune_database" />
|
||||
<item
|
||||
android:id="@+id/action_mark_unknown"
|
||||
app:showAsAction="never|withText"
|
||||
android:title="@string/mark_unverified_events_as_unknown" />
|
||||
</group>
|
||||
|
||||
<group android:id="@+id/grp3">
|
||||
|
||||
@@ -434,4 +434,5 @@
|
||||
<string name="permissions_required">Permissions Disclosure</string>
|
||||
<string name="about_data_sharing">About Data Sharing</string>
|
||||
<string name="privacy_policy">Privacy Policy</string>
|
||||
<string name="mark_unverified_events_as_unknown">Mark Unverified Events as Unknown</string>
|
||||
</resources>
|
||||
|
||||
Reference in New Issue
Block a user