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());
|
Log.i(TAG, "exception starting settings activity " + ex.toString());
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
|
case R.id.action_mark_unknown:
|
||||||
|
Log.i(TAG,"action_mark_unknown");
|
||||||
|
mLm.mWac.markUnverifiedEventsAsUnknown();
|
||||||
|
|
||||||
default:
|
default:
|
||||||
return super.onOptionsItemSelected(item);
|
return super.onOptionsItemSelected(item);
|
||||||
|
|||||||
@@ -34,6 +34,7 @@ import org.json.JSONObject;
|
|||||||
import java.io.UnsupportedEncodingException;
|
import java.io.UnsupportedEncodingException;
|
||||||
import java.text.DateFormat;
|
import java.text.DateFormat;
|
||||||
import java.text.SimpleDateFormat;
|
import java.text.SimpleDateFormat;
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
@@ -49,7 +50,6 @@ public abstract class WebApiConnection {
|
|||||||
private String mAuthToken;
|
private String mAuthToken;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public interface JSONObjectCallback {
|
public interface JSONObjectCallback {
|
||||||
public void accept(JSONObject retValObj);
|
public void accept(JSONObject retValObj);
|
||||||
}
|
}
|
||||||
@@ -115,7 +115,7 @@ public abstract class WebApiConnection {
|
|||||||
|
|
||||||
|
|
||||||
public boolean authenticate(final String uname, final String passwd, StringCallback callback) {
|
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;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -133,4 +133,99 @@ public abstract class WebApiConnection {
|
|||||||
return (mAuthToken);
|
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"
|
android:id="@+id/pruneDatabaseMenuItem"
|
||||||
app:showAsAction="never|withText"
|
app:showAsAction="never|withText"
|
||||||
android:title="@string/prune_database" />
|
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>
|
||||||
|
|
||||||
<group android:id="@+id/grp3">
|
<group android:id="@+id/grp3">
|
||||||
|
|||||||
@@ -434,4 +434,5 @@
|
|||||||
<string name="permissions_required">Permissions Disclosure</string>
|
<string name="permissions_required">Permissions Disclosure</string>
|
||||||
<string name="about_data_sharing">About Data Sharing</string>
|
<string name="about_data_sharing">About Data Sharing</string>
|
||||||
<string name="privacy_policy">Privacy Policy</string>
|
<string name="privacy_policy">Privacy Policy</string>
|
||||||
|
<string name="mark_unverified_events_as_unknown">Mark Unverified Events as Unknown</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|||||||
Reference in New Issue
Block a user