/* @file CalibReadTask.java * * @author marco corvi * @date nov 2011 * * @brief TopoDroid DistoX calib coeff read task * -------------------------------------------------------- * Copyright This sowftare is distributed under GPL-3.0 or later * See the file COPYING. * -------------------------------------------------------- */ package com.topodroid.DistoX; import java.util.List; import android.app.Activity; // import android.app.ActivityManager; // import android.app.ActivityManager.RunningTaskInfo; import android.os.AsyncTask; import android.content.Context; import android.widget.Button; import android.widget.Toast; import android.util.Log; class CalibReadTask extends AsyncTask<Void, Integer, Boolean> { static final int PARENT_DEVICE = 1; static final int PARENT_GM = 2; byte[] coeff; Activity mActivity; IEnableButtons mEnableButtons; TopoDroidApp mApp; int mParentType; // String comp_name; CalibReadTask( Activity activity, IEnableButtons eb, TopoDroidApp app, int parent_type ) { mActivity = activity; mApp = app; mEnableButtons = eb; coeff = new byte[52]; // always read 52 bytes mParentType = parent_type; // comp_name = "ComponentInfo{com.topodroid.DistoX/com.topodroid.DistoX." + act_name + "}"; } @Override protected Boolean doInBackground(Void... v) { return mApp.readCalibCoeff( coeff ); } // @Override // protected void onProgressUpdate(Integer... progress) // { // } @Override protected void onPostExecute( Boolean result ) { mEnableButtons.enableButtons( true ); if ( result ) { String[] items = new String[8]; Vector bg = new Vector(); Matrix ag = new Matrix(); Vector bm = new Vector(); Matrix am = new Matrix(); Vector nL = new Vector(); CalibAlgo.coeffToG( coeff, bg, ag ); CalibAlgo.coeffToM( coeff, bm, am ); CalibAlgo.coeffToNL( coeff, nL ); switch ( mParentType ) { case PARENT_DEVICE: if ( mApp.mDeviceActivityVisible ) { (new CalibCoeffDialog( mActivity, mApp, bg, ag, bm, am, nL, null, 0.0f, 0.0f, 0.0f, 0, null ) ).show(); } break; case PARENT_GM: if ( mApp.mGMActivityVisible ) { (new CalibCoeffDialog( mActivity, mApp, bg, ag, bm, am, nL, null, 0.0f, 0.0f, 0.0f, 0, null ) ).show(); } break; } } else { Toast.makeText( mApp, R.string.read_failed, Toast.LENGTH_SHORT).show(); } } }