package com.applang.tagesberichte; import com.applang.UserContext; import com.applang.berichtsheft.R; import com.applang.provider.NotePadProvider; import com.applang.provider.NotePad.NoteColumns; import android.app.Activity; import android.content.Intent; import android.database.Cursor; import android.net.Uri; import android.os.Bundle; import android.os.Handler; import android.util.Log; import android.view.View; import android.widget.ProgressBar; import android.widget.TextView; import static com.applang.Util.*; import static com.applang.Util1.*; public class BausteinEvaluator extends Activity { private static final String TAG = BausteinEvaluator.class.getSimpleName(); public static final String EVALUATE_ACTION = "com.applang.tagesberichte.action.EVALUATE"; private TextView mTv; private ProgressBar mProgress; private Handler mHandler = new Handler(); Job<Void> progressJob = new Job<Void>() { public void perform(Void t, Object[] params) { int percent = ((Integer)params[0]).intValue(); mProgress.setProgress(percent); } }; private Uri mUri; int tableIndex; String note = ""; ValMap bausteine = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.evaluator_view); mTv = (TextView)findViewById(R.id.textView1); mTv.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { finish(); } }); mProgress = (ProgressBar)findViewById(R.id.progressBar1); Intent intent = getIntent(); mUri = intent.getData(); tableIndex = NotePadProvider.tableIndex(0, mUri); String selection = ""; String[] selectionArgs = null; if (parseId(-1L, mUri) < 0 && NoteColumns.TITLE.equals(mUri.getPathSegments().get(1))) { selection = NoteColumns.TITLE + "=?"; selectionArgs = new String[] {mUri.getPathSegments().get(2)}; mUri = NotePadProvider.contentUri(1); } Cursor cursor = managedQuery(mUri, NotePadProvider.FULL_PROJECTION, selection, selectionArgs, null); if (cursor.moveToFirst()) { setTitle(NotesList.description(tableIndex, cursor.getLong(3), cursor.getString(1))); note = cursor.getString(2); } cursor.close(); bausteine = NotePadProvider.bausteinMap(getContentResolver(), ""); new UserContext.EvaluationTask(this, bausteine, mHandler, progressJob, new Job<Object>() { public void perform(Object text, Object[] params) { mProgress.setVisibility(View.GONE); mTv.setText(text.toString()); } }).execute(note, this.getString(R.string.title_evaluator)); } // test(mHandler); // showDialog(0); /* void test(final Handler progressHandler) { final int TIMER_RUNTIME = 10000; final Thread timerThread = new Thread() { @Override public void run() { try { int waited = 0; while(waited < TIMER_RUNTIME) { sleep(100); waited += 200; // Ignore rounding error here int progress = mProgress.getMax() * waited / TIMER_RUNTIME; final Object[] params = new Object[]{progress}; progressHandler.post(new Runnable() { public void run() { try { progressJob.perform(null, params); } catch (Exception e) { } } }); } } catch(InterruptedException e) { // do nothing } finally { } } }; timerThread.start(); } @Override protected Dialog onCreateDialog(int id) { return waitWhileWorking(this, "Evaluating ...", new Job<Activity>() { public void perform(final Activity activity, Object[] params) throws Exception { com.applang.UserContext.setupVelocity(activity, true); MapContext noteContext = new MapContext(bausteine); final String text = evaluation(noteContext, note, "notes"); runOnUiThread(new Runnable() { public void run() { mTv.setText(text); } }); } } ); } */ }