aboutsummaryrefslogtreecommitdiff
path: root/old_native_project/src/com/example/surgerylog/MainActivity.java
diff options
context:
space:
mode:
authordam <dam@gudinoff>2021-12-01 02:26:44 +0000
committerdam <dam@gudinoff>2021-12-01 02:26:44 +0000
commit2e5c0de21b0f35531e3d42e63c27df80cf3fad02 (patch)
tree8874e7942f1a5fa0173784c1ff04558703e53d7d /old_native_project/src/com/example/surgerylog/MainActivity.java
parent697e1ba3c4cb0a96c4584f1553de368d46287ab7 (diff)
downloadsurgery-log-2e5c0de21b0f35531e3d42e63c27df80cf3fad02.tar.zst
surgery-log-2e5c0de21b0f35531e3d42e63c27df80cf3fad02.zip
Convert from native to godot
Diffstat (limited to 'old_native_project/src/com/example/surgerylog/MainActivity.java')
-rwxr-xr-xold_native_project/src/com/example/surgerylog/MainActivity.java330
1 files changed, 330 insertions, 0 deletions
diff --git a/old_native_project/src/com/example/surgerylog/MainActivity.java b/old_native_project/src/com/example/surgerylog/MainActivity.java
new file mode 100755
index 0000000..47910cc
--- /dev/null
+++ b/old_native_project/src/com/example/surgerylog/MainActivity.java
@@ -0,0 +1,330 @@
+package com.example.surgerylog;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.FileReader;
+import java.io.FilenameFilter;
+import java.io.IOException;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
+import java.io.StreamCorruptedException;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.ListIterator;
+import java.util.Locale;
+import java.util.Map;
+import net.redroid.medlog.R;
+
+import com.csvreader.CsvReader;
+
+import android.app.Activity;
+import android.content.Context;
+import android.content.Intent;
+import android.os.Bundle;
+import android.os.Environment;
+import android.support.v4.app.Fragment;
+import android.support.v4.app.FragmentActivity;
+import android.support.v4.app.FragmentManager;
+import android.support.v4.app.FragmentPagerAdapter;
+import android.support.v4.app.FragmentStatePagerAdapter;
+import android.support.v4.app.NavUtils;
+import android.support.v4.view.ViewPager;
+import android.util.Log;
+import android.view.Gravity;
+import android.view.LayoutInflater;
+import android.view.Menu;
+import android.view.MenuItem;
+import android.view.View;
+import android.view.View.OnClickListener;
+import android.view.ViewGroup;
+import android.widget.AdapterView;
+import android.widget.AdapterView.OnItemSelectedListener;
+import android.widget.ArrayAdapter;
+import android.widget.Button;
+import android.widget.Spinner;
+import android.widget.SpinnerAdapter;
+import android.widget.TextView;
+import android.widget.Toast;
+
+public class MainActivity extends FragmentActivity
+{
+ /**
+ * The {@link android.support.v4.view.PagerAdapter} that will provide
+ * fragments for each of the sections. We use a
+ * {@link android.support.v4.app.FragmentPagerAdapter} derivative, which
+ * will keep every loaded fragment in memory. If this becomes too memory
+ * intensive, it may be best to switch to a
+ * {@link android.support.v4.app.FragmentStatePagerAdapter}.
+ */
+ SectionsPagerAdapter mSectionsPagerAdapter;
+
+ /**
+ * The {@link ViewPager} that will host the section contents.
+ */
+ ViewPager mViewPager;
+
+ // MedTree root
+ public MedLogRoot Root;
+ public List<MedLogInfo> DataBase;
+ public MedLogInfo CurrentInfo = new MedLogInfo();
+
+ // MedTree description file
+ public int ProcessDescriptionFileNumColumns = 8;
+ public String AppFolder = Environment.getExternalStorageDirectory() + "//MedLog";
+ public String TemplateDescriptionFile = Environment.getExternalStorageDirectory() + "//MedLog//template.csv";
+ public String ExportFile = Environment.getExternalStorageDirectory() + "//MedLog//export.csv";
+ public String MedLogConfigFile = Environment.getExternalStorageDirectory() + "//MedLog//config.bin";
+ public String MedLogDataBaseFile = Environment.getExternalStorageDirectory() + "//MedLog//database.bin";
+ private int MessageTime = 1;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+
+ //Log.e("Trace", "MainActiviyy START");
+
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_main);
+
+ // Create root
+ Root = new MedLogRoot();
+
+ // Create the adapter that will return a fragment for each of the three
+ // primary sections of the app.
+ mSectionsPagerAdapter = new SectionsPagerAdapter(
+ getSupportFragmentManager());
+
+ // Set up the ViewPager with the sections adapter.
+ mViewPager = (ViewPager) findViewById(R.id.pager);
+ mViewPager.setAdapter(mSectionsPagerAdapter);
+
+ CheckAppFolder();
+ LoadMedLogConfig();
+ LoadMedLogDB();
+
+ //Log.e("Trace", "MainActiviyy OUT");
+ }
+
+// @Override
+// public boolean onCreateOptionsMenu(Menu menu) {
+// // Inflate the menu; this adds items to the action bar if it is present.
+// getMenuInflater().inflate(R.menu.main, menu);
+// return true;
+// }
+
+ private void CheckAppFolder()
+ {
+ File appFolder = new File(AppFolder);
+ if(appFolder.exists() == false)
+ {
+ appFolder.mkdir();
+ }
+ }
+
+ public void LoadMedLogConfig()
+ {
+ try {
+ //Log.e("Trace Cfg", "input file");
+ FileInputStream fis = new FileInputStream(MedLogConfigFile);
+ //FileInputStream fis = getApplicationContext().openFileInput(MedLogConfigFile);
+ //FileInputStream fis = getApplicationContext().openFileInput("MedLogConfig.bin");
+ //Log.e("Trace Cfg", "input stream");
+ ObjectInputStream is = new ObjectInputStream(fis);
+ //Log.e("Trace Cfg", "read object");
+ Root = (MedLogRoot) is.readObject();
+ //Log.e("Trace Cfg", "close file");
+ is.close();
+ //Log.e("Trace Cfg", "done loading");
+ } catch (FileNotFoundException e) {
+ // TODO Auto-generated catch block
+ //e.printStackTrace();
+ //Log.e("TrTrace Cfgace", "File not found during load.");
+ } catch (StreamCorruptedException e) {
+ // TODO Auto-generated catch block
+ //e.printStackTrace();
+ //Log.e("Trace Cfg", "Stream corrupted during load.");
+ } catch (IOException e) {
+ // TODO Auto-generated catch block
+ //e.printStackTrace();
+ //Log.e("Trace Cfg", "IO Exception during load.");
+ } catch (ClassNotFoundException e) {
+ // TODO Auto-generated catch block
+ //e.printStackTrace();
+ //Log.e("Trace Cfg", "Class not found during load.");
+ }
+ }
+
+ public void SaveMedLogConfig()
+ {
+ try {
+ //Log.e("Trace Cfg", "get context");
+ Context c = getApplicationContext();
+ //Log.e("Trace Cfg", "open output file");
+ //FileOutputStream fos = getApplicationContext().openFileOutput(MedLogConfigFile, Context.MODE_PRIVATE);
+ FileOutputStream fos = new FileOutputStream(MedLogConfigFile);
+ //Log.e("Trace Cfg", "new output stream");
+ ObjectOutputStream os = new ObjectOutputStream(fos);
+ //Log.e("Trace Cfg", "write");
+ os.writeObject(Root);
+ //Log.e("Trace Cfg", "close");
+ os.close();
+ //Log.e("Trace Cfg", "done");
+ } catch (FileNotFoundException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ //Log.e("Trace Cfg", "File not found during save.");
+ } catch (IOException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ //Log.e("Trace Cfg", "IO Exception during save.");
+ }
+ }
+
+ public void LoadMedLogDB()
+ {
+ try {
+ //Log.e("Trace DB", "input file");
+ FileInputStream fis = new FileInputStream(MedLogDataBaseFile);
+ //Log.e("Trace DB", "input stream");
+ ObjectInputStream is = new ObjectInputStream(fis);
+ //Log.e("Trace DB", "read object");
+ DataBase = (List<MedLogInfo>) is.readObject();
+ //Log.e("Trace DB", "close file");
+ is.close();
+ //Log.e("Trace DB", "done loading");
+ } catch (FileNotFoundException e) {
+ //Log.e("Trace DB", "File not found during load.");
+ } catch (StreamCorruptedException e) {
+ //Log.e("Trace DB", "Stream corrupted during load.");
+ } catch (IOException e) {
+ //Log.e("Trace DB", "IO Exception during data base load.");
+ } catch (ClassNotFoundException e) {
+ //Log.e("Trace DB", "Class 'List<MedLogInfo>' not found during load.");
+ }
+ finally
+ {
+ if(DataBase == null)
+ {
+ // create empty data base
+ DataBase = new ArrayList<MedLogInfo>();
+ }
+ }
+ }
+
+ public void SaveMedLogDB()
+ {
+ try {
+ //Log.e("Trace DB", "get context");
+ Context c = getApplicationContext();
+ //Log.e("Trace DB", "open output file");
+ FileOutputStream fos = new FileOutputStream(MedLogDataBaseFile);
+ //Log.e("Trace DB", "new output stream");
+ ObjectOutputStream os = new ObjectOutputStream(fos);
+ //Log.e("Trace DB", "write");
+ os.writeObject(DataBase);
+ //Log.e("Trace DB", "close");
+ os.close();
+ //Log.e("Trace DB", "done");
+ } catch (FileNotFoundException e) {
+ //Log.e("Trace DB", "File not found during save.");
+ } catch (IOException e) {
+ //Log.e("Trace DB", "IO Exception during save.");
+ }
+ }
+
+ public void AddNewEntry()
+ {
+ DataBase.add(CurrentInfo);
+ SaveMedLogDB();
+ Root.GrowTreeWithInfo(CurrentInfo);
+ SaveMedLogConfig();
+ CurrentInfo = new MedLogInfo();
+ }
+
+ public void ShowMessage(int messageId)
+ {
+ for (int i=0; i < MessageTime; i++)
+ {
+ Toast.makeText(this, messageId, Toast.LENGTH_LONG).show();
+ }
+ }
+
+ public void ShowMessage(String message)
+ {
+ for (int i=0; i < MessageTime; i++)
+ {
+ Toast.makeText(this, message, Toast.LENGTH_LONG).show();
+ }
+ }
+
+ /**
+ * A {@link FragmentPagerAdapter} that returns a fragment corresponding to
+ * one of the sections/tabs/pages.
+ */
+ public class SectionsPagerAdapter extends FragmentStatePagerAdapter //FragmentPagerAdapter
+ {
+
+ public SectionsPagerAdapter(FragmentManager fm) {
+ super(fm);
+ }
+
+ @Override
+ public Fragment getItem(int position)
+ {
+ //Log.e("Trace", "new frag IN");
+
+ // getItem is called to instantiate the fragment for the given page.
+ // Return a DummySectionFragment (defined as a static inner class
+ // below) with the page number as its lone argument.
+ Fragment fragment;
+ if(position == 0)
+ {
+ fragment = new NewEntryFragment();
+ }
+ else if(position == 1)
+ {
+ fragment = new ViewDataFragment();
+ }
+ else
+ {
+ fragment = new FileOperationsFragment();
+ }
+
+ Bundle args = new Bundle();
+ args.putInt(NewEntryFragment.ARG_SECTION_NUMBER, position + 1);
+ fragment.setArguments(args);
+
+ // retain instances
+ //Log.e("Trace", "new frag");
+
+ return fragment;
+ }
+
+ @Override
+ public int getCount() {
+ // Show 3 total pages.
+ return 3;
+ }
+
+ @Override
+ public CharSequence getPageTitle(int position)
+ {
+ Locale l = Locale.getDefault();
+ switch (position) {
+ case 0:
+ return getString(R.string.title_section1).toUpperCase(l);
+ case 1:
+ return getString(R.string.title_section2).toUpperCase(l);
+ case 2:
+ return getString(R.string.title_section3).toUpperCase(l);
+ }
+ return null;
+ }
+ }
+
+
+}