0.12.3: Increased Tango rendering performance, modified all handleEvent() with new interface (now returning bool)

This commit is contained in:
matlabbe
2017-03-12 21:21:09 -04:00
parent c12980ee91
commit d21ae76fff
56 changed files with 1869 additions and 662 deletions
@@ -33,6 +33,7 @@ import android.content.DialogInterface;
import android.content.Intent;
import android.content.ServiceConnection;
import android.content.SharedPreferences;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.pm.PackageManager.NameNotFoundException;
@@ -93,6 +94,7 @@ public class RTABMapActivity extends Activity implements OnClickListener {
// Tag for debug logging.
public static final String TAG = RTABMapActivity.class.getSimpleName();
public static boolean DISABLE_LOG = true;
// The minimum Tango Core version required from this application.
private static final int MIN_TANGO_CORE_VERSION = 9377;
@@ -180,12 +182,12 @@ public class RTABMapActivity extends Activity implements OnClickListener {
private int mTotalLoopClosures = 0;
private boolean mMapIsEmpty = false;
private boolean mExportedOBJ = false;
int mMapNodes = 0;
private Toast mToast = null;
private AlertDialog mMemoryWarningDialog = null;
private Thread mMemStatusUpdateThread = null;
private String[] mStatusTexts = new String[16];
//Tango Service connection.
@@ -347,6 +349,8 @@ public class RTABMapActivity extends Activity implements OnClickListener {
public void onDisplayRemoved(int displayId) {}
}, null);
}
DISABLE_LOG = !( 0 != ( getApplicationInfo().flags & ApplicationInfo.FLAG_DEBUGGABLE ) );
}
@Override
@@ -386,7 +390,7 @@ public class RTABMapActivity extends Activity implements OnClickListener {
protected void onPause() {
super.onPause();
Log.i(TAG, "onPause()");
if(!DISABLE_LOG) Log.i(TAG, "onPause()");
mOnPause = true;
// This deletes OpenGL context!
@@ -434,7 +438,7 @@ public class RTABMapActivity extends Activity implements OnClickListener {
// update preferences
try
{
Log.d(TAG, "update preferences...");
if(!DISABLE_LOG) Log.d(TAG, "update preferences...");
SharedPreferences sharedPref = PreferenceManager.getDefaultSharedPreferences(this);
mUpdateRate = sharedPref.getString(getString(R.string.pref_key_update_rate), getString(R.string.pref_default_update_rate));
mTimeThr = sharedPref.getString(getString(R.string.pref_key_time_thr), getString(R.string.pref_default_time_thr));
@@ -450,7 +454,7 @@ public class RTABMapActivity extends Activity implements OnClickListener {
boolean optimizeFromGraphEnd = sharedPref.getBoolean(getString(R.string.pref_key_optimize_end), Boolean.parseBoolean(getString(R.string.pref_default_optimize_end)));
String optimizer = sharedPref.getString(getString(R.string.pref_key_optimizer), getString(R.string.pref_default_optimizer));
Log.d(TAG, "set mapping parameters");
if(!DISABLE_LOG) Log.d(TAG, "set mapping parameters");
RTABMapLib.setNodesFiltering(sharedPref.getBoolean(getString(R.string.pref_key_nodes_filtering), Boolean.parseBoolean(getString(R.string.pref_default_nodes_filtering))));
RTABMapLib.setAutoExposure(sharedPref.getBoolean(getString(R.string.pref_key_auto_exposure), Boolean.parseBoolean(getString(R.string.pref_default_auto_exposure))));
RTABMapLib.setRawScanSaved(sharedPref.getBoolean(getString(R.string.pref_key_raw_scan_saved), Boolean.parseBoolean(getString(R.string.pref_default_raw_scan_saved))));
@@ -472,16 +476,17 @@ public class RTABMapActivity extends Activity implements OnClickListener {
RTABMapLib.setMappingParameter("RGBD/OptimizeFromGraphEnd", String.valueOf(optimizeFromGraphEnd));
RTABMapLib.setMappingParameter("Optimizer/Strategy", optimizer);
Log.d(TAG, "set exporting parameters...");
if(!DISABLE_LOG) Log.d(TAG, "set exporting parameters...");
RTABMapLib.setMeshDecimation(Integer.parseInt(sharedPref.getString(getString(R.string.pref_key_density), getString(R.string.pref_default_density))));
RTABMapLib.setMaxCloudDepth(Float.parseFloat(sharedPref.getString(getString(R.string.pref_key_depth), getString(R.string.pref_default_depth))));
RTABMapLib.setPointSize(Float.parseFloat(sharedPref.getString(getString(R.string.pref_key_point_size), getString(R.string.pref_default_point_size))));
RTABMapLib.setMeshAngleTolerance(Float.parseFloat(sharedPref.getString(getString(R.string.pref_key_angle), getString(R.string.pref_default_angle))));
RTABMapLib.setMeshTriangleSize(Integer.parseInt(sharedPref.getString(getString(R.string.pref_key_triangle), getString(R.string.pref_default_triangle))));
Log.d(TAG, "set rendering parameters...");
RTABMapLib.setMinClusterSize(Integer.parseInt(sharedPref.getString(getString(R.string.pref_key_min_cluster_size), getString(R.string.pref_default_min_cluster_size))));
if(!DISABLE_LOG) Log.d(TAG, "set rendering parameters...");
RTABMapLib.setClusterRatio(Float.parseFloat(sharedPref.getString(getString(R.string.pref_key_cluster_ratio), getString(R.string.pref_default_cluster_ratio))));
RTABMapLib.setMaxGainRadius(Float.parseFloat(sharedPref.getString(getString(R.string.pref_key_gain_max_radius), getString(R.string.pref_default_gain_max_radius))));
RTABMapLib.setRenderingTextureDecimation(Integer.parseInt(sharedPref.getString(getString(R.string.pref_key_rendering_texture_decimation), getString(R.string.pref_default_rendering_texture_decimation))));
if(mItemRenderingPointCloud != null)
{
@@ -511,14 +516,14 @@ public class RTABMapActivity extends Activity implements OnClickListener {
mToast.makeText(this, String.format("Error parsing preferences: "+e.getMessage()), mToast.LENGTH_LONG).show();
}
Log.i(TAG, String.format("onResume()"));
if(!DISABLE_LOG) Log.i(TAG, String.format("onResume()"));
if (Tango.hasPermission(this, Tango.PERMISSIONTYPE_MOTION_TRACKING)) {
mGLView.onResume();
} else {
Log.i(TAG, String.format("Asking for motion tracking permission"));
if(!DISABLE_LOG) Log.i(TAG, String.format("Asking for motion tracking permission"));
startActivityForResult(
Tango.getRequestPermissionIntent(Tango.PERMISSIONTYPE_MOTION_TRACKING),
Tango.TANGO_INTENT_ACTIVITYCODE);
@@ -528,9 +533,8 @@ public class RTABMapActivity extends Activity implements OnClickListener {
}
private void setCamera(int type)
{
{
// for convenience, for a refresh of the memory used
stopUpdateStatusThread();
mStatusTexts[1] = getString(R.string.memory)+String.valueOf(Debug.getNativeHeapAllocatedSize()/(1024*1024));
mStatusTexts[2] = getString(R.string.free_memory)+String.valueOf(getFreeMemory());
updateStatusTexts();
@@ -618,7 +622,7 @@ public class RTABMapActivity extends Activity implements OnClickListener {
@Override
public boolean onCreateOptionsMenu(Menu menu) {
Log.i(TAG, "called onCreateOptionsMenu;");
if(!DISABLE_LOG) Log.i(TAG, "called onCreateOptionsMenu;");
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.optionmenu, menu);
@@ -734,7 +738,7 @@ public class RTABMapActivity extends Activity implements OnClickListener {
long memoryUsed = processMemoryUsed;
long memoryFree = getFreeMemory();
if(memoryFree < 100)
if(memoryFree < 200)
{
mButtonPause.setChecked(true);
pauseMapping();
@@ -843,33 +847,43 @@ public class RTABMapActivity extends Activity implements OnClickListener {
final float rehearsalValue,
final float optimizationMaxError)
{
Log.i(TAG, String.format("updateStatsCallback()"));
if(!DISABLE_LOG) Log.i(TAG, String.format("updateStatsCallback()"));
final String[] statusTexts = new String[16];
if(mButtonPause!=null)
if(mButtonPause!=null && !mButtonPause.isChecked())
{
if(mButtonPause.isChecked())
{
statusTexts[0] = getString(R.string.status)+"Paused";
}
else if(mItemLocalizationMode!=null && mItemDataRecorderMode!=null)
{
String updateValue = mUpdateRate.compareTo("0")==0?"Max":mUpdateRate;
statusTexts[0] = getString(R.string.status)+(mItemLocalizationMode.isChecked()?String.format("Localization (%s Hz)", updateValue):mItemDataRecorderMode.isChecked()?String.format("Recording (%s Hz)", updateValue):String.format("Mapping (%s Hz)", updateValue));
}
String updateValue = mUpdateRate.compareTo("0")==0?"Max":mUpdateRate;
statusTexts[0] = getString(R.string.status)+(mItemDataRecorderMode!=null&&mItemDataRecorderMode.isChecked()?String.format("Recording (%s Hz)", updateValue):mItemLocalizationMode!=null && mItemLocalizationMode.isChecked()?String.format("Localization (%s Hz)", updateValue):String.format("Mapping (%s Hz)", updateValue));
}
else
{
statusTexts[0] = getString(R.string.status);
statusTexts[0] = mStatusTexts[0];
}
stopUpdateStatusThread();
// getNativeHeapAllocatedSize() is too slow, so we need to use the estimate.
// Multiply by 3/2 to match getNativeHeapAllocatedSize()
final int adjustedMemoryUsed = (processMemoryUsed*3)/2;
statusTexts[1] = getString(R.string.memory)+adjustedMemoryUsed;
if(mButtonPause!=null)
{
if(!mButtonPause.isChecked())
{
statusTexts[1] = getString(R.string.memory)+adjustedMemoryUsed;
}
else if(mState == State.STATE_PROCESSING)
{
// This request is long to do, only do it when processing.
statusTexts[1] = getString(R.string.memory)+String.valueOf(Debug.getNativeHeapAllocatedSize()/(1024*1024));
}
else
{
statusTexts[1] = mStatusTexts[1];
}
}
else
{
statusTexts[1] = mStatusTexts[1];
}
statusTexts[2] = getString(R.string.free_memory)+getFreeMemory();
@@ -878,6 +892,8 @@ public class RTABMapActivity extends Activity implements OnClickListener {
++mTotalLoopClosures;
}
mMapNodes = nodes;
int index = 4;
statusTexts[index++] = getString(R.string.nodes)+nodes+" (" + nodesDrawn + " shown)";
statusTexts[index++] = getString(R.string.words)+words;
@@ -903,7 +919,7 @@ public class RTABMapActivity extends Activity implements OnClickListener {
int status,
String msg)
{
Log.i(TAG, String.format("rtabmapInitEventsUI() status=%d msg=%s", status, msg));
if(!DISABLE_LOG) Log.i(TAG, String.format("rtabmapInitEventsUI() status=%d msg=%s", status, msg));
if(mButtonPause!=null)
{
@@ -911,9 +927,9 @@ public class RTABMapActivity extends Activity implements OnClickListener {
{
mStatusTexts[0] = getString(R.string.status)+(status == 1 && msg.isEmpty()?"Paused":msg);
}
else
else if(mItemLocalizationMode!=null && mItemDataRecorderMode!=null)
{
mStatusTexts[0] = getString(R.string.status)+(status == 1 && msg.isEmpty()?(mItemLocalizationMode!=null&&mItemLocalizationMode.isChecked()?"Localization":mItemDataRecorderMode!=null&&mItemDataRecorderMode.isChecked()?"Recording":"Mapping"):msg);
mStatusTexts[0] = getString(R.string.status)+(status == 1 && msg.isEmpty()?(mItemDataRecorderMode!=null&&mItemDataRecorderMode.isChecked()?"Recording":mItemLocalizationMode!=null&&mItemLocalizationMode.isChecked()?"Localization":"Mapping"):msg);
}
mStatusTexts[1] = getString(R.string.memory)+String.valueOf(Debug.getNativeHeapAllocatedSize()/(1024*1024));
@@ -927,7 +943,7 @@ public class RTABMapActivity extends Activity implements OnClickListener {
final int status,
final String msg)
{
Log.i(TAG, String.format("rtabmapInitEventCallback()"));
if(!DISABLE_LOG) Log.i(TAG, String.format("rtabmapInitEventCallback()"));
runOnUiThread(new Runnable() {
public void run() {
@@ -940,7 +956,7 @@ public class RTABMapActivity extends Activity implements OnClickListener {
int count,
int max)
{
Log.i(TAG, String.format("updateProgressionUI() count=%d max=%s", count, max));
if(!DISABLE_LOG) Log.i(TAG, String.format("updateProgressionUI() count=%d max=%s", count, max));
mExportProgressDialog.setMax(max);
mExportProgressDialog.setProgress(count);
@@ -951,7 +967,7 @@ public class RTABMapActivity extends Activity implements OnClickListener {
final int count,
final int max)
{
Log.i(TAG, String.format("updateProgressionCallback()"));
if(!DISABLE_LOG) Log.i(TAG, String.format("updateProgressionCallback()"));
runOnUiThread(new Runnable() {
public void run() {
@@ -1104,50 +1120,13 @@ public class RTABMapActivity extends Activity implements OnClickListener {
});
workingThread.start();
}
public void startUpdateStatusThread()
{
if(mMemStatusUpdateThread == null)
{
mMemStatusUpdateThread = new Thread() {
@Override
public void run() {
try {
while (!isInterrupted()) {
Thread.sleep(1000);
if(mState != RTABMapActivity.State.STATE_VISUALIZING)
{
runOnUiThread(new Runnable() {
@Override
public void run() {
mStatusTexts[1] = getString(R.string.memory)+String.valueOf(Debug.getNativeHeapAllocatedSize()/(1024*1024));
mStatusTexts[2] = getString(R.string.free_memory)+String.valueOf(getFreeMemory());
updateStatusTexts();
}
});
}
}
} catch (InterruptedException e) {
}
}
};
mMemStatusUpdateThread.start();
}
}
public void stopUpdateStatusThread()
{
if(mMemStatusUpdateThread != null)
{
Thread tmp = mMemStatusUpdateThread;
mMemStatusUpdateThread = null;
tmp.interrupt();
}
}
private void updateState(State state)
{
if(mState == State.STATE_VISUALIZING && state == State.STATE_IDLE && mMapNodes > 100)
{
mToast.makeText(getActivity(), String.format("Re-adding %d online clouds, this may take some time...", mMapNodes), mToast.LENGTH_LONG).show();
}
mState = state;
switch(state)
{
@@ -1164,7 +1143,6 @@ public class RTABMapActivity extends Activity implements OnClickListener {
mItemReset.setEnabled(false);
mItemModes.setEnabled(false);
mButtonPause.setVisibility(View.INVISIBLE);
startUpdateStatusThread();
break;
case STATE_VISUALIZING:
mButtonLighting.setVisibility(View.VISIBLE);
@@ -1180,7 +1158,6 @@ public class RTABMapActivity extends Activity implements OnClickListener {
mItemModes.setEnabled(true);
mButtonPause.setVisibility(View.INVISIBLE);
mItemDataRecorderMode.setEnabled(mButtonPause.isChecked());
stopUpdateStatusThread();
break;
default:
mButtonLighting.setVisibility(View.INVISIBLE);
@@ -1197,7 +1174,6 @@ public class RTABMapActivity extends Activity implements OnClickListener {
mButtonPause.setVisibility(View.VISIBLE);
mItemDataRecorderMode.setEnabled(mButtonPause.isChecked());
RTABMapLib.postExportation(false);
stopUpdateStatusThread();
break;
}
}
@@ -1259,7 +1235,7 @@ public class RTABMapActivity extends Activity implements OnClickListener {
}
public boolean onOptionsItemSelected(MenuItem item) {
Log.i(TAG, "called onOptionsItemSelected; selected item: " + item);
if(!DISABLE_LOG) Log.i(TAG, "called onOptionsItemSelected; selected item: " + item);
int itemId = item.getItemId();
if (itemId == R.id.post_processing_standard)
{
@@ -1500,6 +1476,7 @@ public class RTABMapActivity extends Activity implements OnClickListener {
mTotalLoopClosures = 0;
int index = 4;
mMapNodes = 0;
mStatusTexts[index++] = getString(R.string.nodes)+0;
mStatusTexts[index++] = getString(R.string.words)+0;
mStatusTexts[index++] = getString(R.string.database_size)+0;
@@ -1538,6 +1515,7 @@ public class RTABMapActivity extends Activity implements OnClickListener {
// reset
mTotalLoopClosures = 0;
int index = 4;
mMapNodes = 0;
mStatusTexts[index++] = getString(R.string.nodes)+0;
mStatusTexts[index++] = getString(R.string.words)+0;
mStatusTexts[index++] = getString(R.string.database_size)+0;
@@ -1756,6 +1734,8 @@ public class RTABMapActivity extends Activity implements OnClickListener {
Thread exportThread = new Thread(new Runnable() {
public void run() {
final long startTime = System.currentTimeMillis()/1000;
final boolean success = RTABMapLib.exportMesh(
tmpPath,
cloudVoxelSize,
@@ -1783,11 +1763,13 @@ public class RTABMapActivity extends Activity implements OnClickListener {
{
mToast.makeText(getActivity(), String.format("Cloud assembled and voxelized at %s m.", cloudVoxelSizeStr), mToast.LENGTH_LONG).show();
}
final long endTime = System.currentTimeMillis()/1000;
// Visualize the result?
AlertDialog d = new AlertDialog.Builder(getActivity())
.setCancelable(false)
.setTitle("Export Successful!")
.setTitle("Export Successful! (" + (endTime-startTime) + " sec)")
.setMessage(Html.fromHtml("Do you want visualize the result before saving to file or sharing to <a href=\"https://sketchfab.com/about\">Sketchfab</a>?"))
.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
@@ -1869,7 +1851,6 @@ public class RTABMapActivity extends Activity implements OnClickListener {
}
mProgressDialog.show();
updateState(State.STATE_PROCESSING);
startUpdateStatusThread();
Thread saveThread = new Thread(new Runnable() {
public void run() {
RTABMapLib.save(newDatabasePath); // save
@@ -2059,16 +2040,6 @@ public class RTABMapActivity extends Activity implements OnClickListener {
{
mOpenedDatabasePath = mWorkingDirectory + fileName;
final String tmpDatabase = mWorkingDirectory+RTABMAP_TMP_DB;
(new File(tmpDatabase)).delete();
try{
copy(new File(mOpenedDatabasePath), new File(tmpDatabase));
}
catch(IOException e)
{
mToast.makeText(getActivity(), String.format("Failed to create temp database from %s!", mOpenedDatabasePath), mToast.LENGTH_LONG).show();
}
SharedPreferences sharedPref = PreferenceManager.getDefaultSharedPreferences(getActivity());
final boolean databaseInMemory = sharedPref.getBoolean(getString(R.string.pref_key_db_in_memory), Boolean.parseBoolean(getString(R.string.pref_default_db_in_memory)));
@@ -2081,6 +2052,19 @@ public class RTABMapActivity extends Activity implements OnClickListener {
Thread openThread = new Thread(new Runnable() {
public void run() {
final String tmpDatabase = mWorkingDirectory+RTABMAP_TMP_DB;
(new File(tmpDatabase)).delete();
try{
copy(new File(mOpenedDatabasePath), new File(tmpDatabase));
}
catch(IOException e)
{
mToast.makeText(getActivity(), String.format("Failed to create temp database from %s!", mOpenedDatabasePath), mToast.LENGTH_LONG).show();
updateState(State.STATE_IDLE);
mProgressDialog.dismiss();
return;
}
final int status = RTABMapLib.openDatabase(tmpDatabase, databaseInMemory, optimize);
runOnUiThread(new Runnable() {
@@ -2113,12 +2097,10 @@ public class RTABMapActivity extends Activity implements OnClickListener {
else
{
// creating meshes...
startUpdateStatusThread();
if(!mItemTrajectoryMode.isChecked())
{
mProgressDialog.setTitle("Loading");
mProgressDialog.setMessage(String.format("Database \"%s\" loaded. Please wait while creating point clouds and meshes...", fileName));
mProgressDialog.setMessage(String.format("Database \"%s\" loaded. Please wait while rendering point clouds and meshes...", fileName));
mProgressDialog.show();
}
}
@@ -80,8 +80,9 @@ public class RTABMapLib
public static native void setMeshDecimation(int value);
public static native void setMeshAngleTolerance(float value);
public static native void setMeshTriangleSize(int value);
public static native void setMinClusterSize(int value);
public static native void setClusterRatio(float value);
public static native void setMaxGainRadius(float value);
public static native void setRenderingTextureDecimation(int value);
public static native int setMappingParameter(String key, String value);
public static native void resetMapping();
@@ -96,36 +96,49 @@ public class Renderer implements GLSurfaceView.Renderer {
mTextManager.Draw(mtrxProjectionAndView);
}
mActivity.runOnUiThread(new Runnable() {
public void run() {
if(value != 0 && mProgressDialog != null && mProgressDialog.isShowing())
{
Log.i("RTABMapActivity", "Renderer: dismiss dialog, value received=" + String.valueOf(value));
mProgressDialog.dismiss();
mActivity.stopUpdateStatusThread();
}
if(value==-1 && mToast!=null)
{
mToast.makeText(mActivity, String.format("Out of Memory!"), Toast.LENGTH_SHORT).show();
}
else if(value==-2 && mToast!=null)
{
mToast.makeText(mActivity, String.format("Rendering Error!"), Toast.LENGTH_SHORT).show();
}
}
});
}
catch(final Exception e)
{
if(mToast!=null)
if(value != 0 && mProgressDialog != null && mProgressDialog.isShowing())
{
mActivity.runOnUiThread(new Runnable() {
public void run() {
mToast.makeText(mActivity, String.format("Rendering error! %s", e.getMessage()), Toast.LENGTH_SHORT).show();
if(!RTABMapActivity.DISABLE_LOG) Log.i("RTABMapActivity", "Renderer: dismiss dialog, value received=" + String.valueOf(value));
mProgressDialog.dismiss();
}
});
}
if(value==-1)
{
mActivity.runOnUiThread(new Runnable() {
public void run() {
if(mToast!=null)
{
mToast.makeText(mActivity, String.format("Out of Memory!"), Toast.LENGTH_SHORT).show();
}
}
});
}
else if(value==-2)
{
mActivity.runOnUiThread(new Runnable() {
public void run() {
if(mToast!=null)
{
mToast.makeText(mActivity, String.format("Rendering Error!"), Toast.LENGTH_SHORT).show();
}
}
});
}
}
catch(final Exception e)
{
mActivity.runOnUiThread(new Runnable() {
public void run() {
if(mToast!=null)
{
mToast.makeText(mActivity, String.format("Rendering error! %s", e.getMessage()), Toast.LENGTH_SHORT).show();
}
}
});
}
}
@@ -33,7 +33,8 @@ public class SettingsActivity extends PreferenceActivity implements OnSharedPref
((Preference)findPreference(getString(R.string.pref_key_point_size))).setSummary("("+((ListPreference)findPreference(getString(R.string.pref_key_point_size))).getEntry() + ") "+getString(R.string.pref_summary_point_size));
((Preference)findPreference(getString(R.string.pref_key_angle))).setSummary("("+((ListPreference)findPreference(getString(R.string.pref_key_angle))).getEntry() + ") "+getString(R.string.pref_summary_angle));
((Preference)findPreference(getString(R.string.pref_key_triangle))).setSummary("("+((ListPreference)findPreference(getString(R.string.pref_key_triangle))).getEntry() + ") "+getString(R.string.pref_summary_triangle));
((Preference)findPreference(getString(R.string.pref_key_rendering_texture_decimation))).setSummary("("+((ListPreference)findPreference(getString(R.string.pref_key_rendering_texture_decimation))).getEntry() + ") "+getString(R.string.pref_summary_rendering_texture_decimation));
((Preference)findPreference(getString(R.string.pref_key_update_rate))).setSummary("("+((ListPreference)findPreference(getString(R.string.pref_key_update_rate))).getEntry() + ") "+getString(R.string.pref_summary_update_rate));
((Preference)findPreference(getString(R.string.pref_key_time_thr))).setSummary("("+((ListPreference)findPreference(getString(R.string.pref_key_time_thr))).getEntry() + ") "+getString(R.string.pref_summary_time_thr));
((Preference)findPreference(getString(R.string.pref_key_mem_thr))).setSummary("("+((ListPreference)findPreference(getString(R.string.pref_key_mem_thr))).getEntry() + ") "+getString(R.string.pref_summary_mem_thr));
@@ -55,7 +56,7 @@ public class SettingsActivity extends PreferenceActivity implements OnSharedPref
((Preference)findPreference(getString(R.string.pref_key_opt_depth))).setSummary("("+((ListPreference)findPreference(getString(R.string.pref_key_opt_depth))).getEntry() + ") "+getString(R.string.pref_summary_opt_depth));
((Preference)findPreference(getString(R.string.pref_key_opt_color_radius))).setSummary("("+((ListPreference)findPreference(getString(R.string.pref_key_opt_color_radius))).getEntry() + ") "+getString(R.string.pref_summary_opt_color_radius));
((Preference)findPreference(getString(R.string.pref_key_min_cluster_size))).setSummary("("+((ListPreference)findPreference(getString(R.string.pref_key_min_cluster_size))).getEntry() + ") "+getString(R.string.pref_summary_min_cluster_size));
((Preference)findPreference(getString(R.string.pref_key_cluster_ratio))).setSummary("("+((ListPreference)findPreference(getString(R.string.pref_key_cluster_ratio))).getEntry() + ") "+getString(R.string.pref_summary_cluster_ratio));
((Preference)findPreference(getString(R.string.pref_key_gain_max_radius))).setSummary("("+((ListPreference)findPreference(getString(R.string.pref_key_gain_max_radius))).getEntry() + ") "+getString(R.string.pref_summary_gain_max_radius));
}
@@ -68,6 +69,7 @@ public class SettingsActivity extends PreferenceActivity implements OnSharedPref
if(key.compareTo(getString(R.string.pref_key_point_size))==0) pref.setSummary("("+((ListPreference)pref).getEntry() + ") "+getString(R.string.pref_summary_point_size));
if(key.compareTo(getString(R.string.pref_key_angle))==0) pref.setSummary("("+((ListPreference)pref).getEntry() + ") "+getString(R.string.pref_summary_angle));
if(key.compareTo(getString(R.string.pref_key_triangle))==0) pref.setSummary("("+((ListPreference)pref).getEntry() + ") "+getString(R.string.pref_summary_triangle));
if(key.compareTo(getString(R.string.pref_key_rendering_texture_decimation))==0) pref.setSummary("("+((ListPreference)pref).getEntry() + ") "+getString(R.string.pref_summary_rendering_texture_decimation));
if(key.compareTo(getString(R.string.pref_key_update_rate))==0) pref.setSummary("("+((ListPreference)pref).getEntry() + ") "+getString(R.string.pref_summary_update_rate));
if(key.compareTo(getString(R.string.pref_key_time_thr))==0) pref.setSummary("("+((ListPreference)pref).getEntry() + ") "+getString(R.string.pref_summary_time_thr));
@@ -90,7 +92,7 @@ public class SettingsActivity extends PreferenceActivity implements OnSharedPref
if(key.compareTo(getString(R.string.pref_key_opt_depth))==0) pref.setSummary("("+((ListPreference)pref).getEntry() + ") "+getString(R.string.pref_summary_opt_depth));
if(key.compareTo(getString(R.string.pref_key_opt_color_radius))==0) pref.setSummary("("+((ListPreference)pref).getEntry() + ") "+getString(R.string.pref_summary_opt_color_radius));
if(key.compareTo(getString(R.string.pref_key_min_cluster_size))==0) pref.setSummary("("+((ListPreference)pref).getEntry() + ") "+getString(R.string.pref_summary_min_cluster_size));
if(key.compareTo(getString(R.string.pref_key_cluster_ratio))==0) pref.setSummary("("+((ListPreference)pref).getEntry() + ") "+getString(R.string.pref_summary_cluster_ratio));
if(key.compareTo(getString(R.string.pref_key_gain_max_radius))==0) pref.setSummary("("+((ListPreference)pref).getEntry() + ") "+getString(R.string.pref_summary_gain_max_radius));
}
@@ -213,6 +213,7 @@ public class SketchfabActivity extends Activity implements OnClickListener {
mAuthDialog = new Dialog(this);
mAuthDialog.setContentView(R.layout.auth_dialog);
web = (WebView)mAuthDialog.findViewById(R.id.webv);
web.setWebContentsDebuggingEnabled(!RTABMapActivity.DISABLE_LOG);
web.getSettings().setJavaScriptEnabled(true);
String auth_url = AUTHORIZE_PATH+"?redirect_uri="+REDIRECT_URI+"&response_type=token&client_id="+CLIENT_ID;
Log.i(RTABMapActivity.TAG, "Auhorize url="+auth_url);