Skip to content
Snippets Groups Projects
SaveFile.java 6.93 KiB
package com.example.pharmacy.frontEnd;

import android.content.Context;
import android.content.SharedPreferences;
import android.os.Environment;
import android.util.Log;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Calendar;

/**
 * Created by pharmacy on 12/02/2018.
 */

public class SaveFile {

    private static void recordTimeStamp(int sent, int clicked, int acknowledged, Context context) {
        Calendar cal = Calendar.getInstance();
        ArrayList<String> contents = new ArrayList<String>();
        String line = "";
        if (isExternalStorageMounted()) {
            File dir = getDirectory(context);
            File file = new File(dir, "TIMESTAMPLOG");
            if (!file.exists()) {
                try {
                    file.createNewFile();
                } catch (IOException e) {
                    Log.e("FILE_ERROR", "COULDN'T CREATE NEW FILE");
                }
            }
            try {
                if (file.isFile() && file.canRead()) {
                    BufferedReader br = new BufferedReader(new FileReader(file));
                    Log.d("STAMP", "READING");
                    while ((line = br.readLine()) != null) {
                        contents.add(line + '\n');
                        Log.d("STAMP", "LINING" + line);
                    }
                }
                if (file.isFile() & file.canWrite()) {
                    Log.d("STAMP", "WRITING");
                    BufferedWriter bw = new BufferedWriter(new FileWriter(file));
                    if (contents.size() > 100) {
                        contents.remove(0);
                        Log.d("STAMP", "REMOVING");
                    }
                    for (String ts : contents) {
                        bw.write(ts);
                    }
                    bw.write(cal.getTime().toString() + " "+ sent + "" + clicked);
                    Log.d("STAMP", "SHOULD BE FINITO");
                    bw.close();
                }

            } catch (IOException e) {
                Log.e("FILEERROR", "COULD NOT WRITE TO FILE");
            }
        }
    }

    public static void recordNotification(int sent, int clicked, int acknowledged, Context context) {
        int ns = 0;
        int nc = 0;
        int na = 0;
        if (isExternalStorageMounted()) {
            Log.d("SAVING", "STORAGE");
            File dir = getDirectory(context);
            if (dir.isDirectory()) {
                Log.d("SAVING", "DIRECTORY");
                File file = new File(dir, "NOTLOG");
                try {
                    if(!file.exists()) {
                        file.createNewFile();
                    }
                    Log.d("SAVING", "POSTDIRECTORY");
                    if (file.isFile() & file.canRead()) {
                        Log.d("SAVING", "ISFILE");
                        BufferedReader br = new BufferedReader(new FileReader(file));

                        Log.d("SAVING", "READINGFILE");
                        try {
                            ns = Integer.parseInt(br.readLine());
                            nc = Integer.parseInt(br.readLine());
                            na = Integer.parseInt(br.readLine());
                        }catch(NumberFormatException e){

                        }
                        if (file.isFile() & file.canWrite()) {

                            Log.d("SAVING", "WRITINGFILE");
                            BufferedWriter bw = new BufferedWriter(new FileWriter(file));
                            ns += sent;
                            nc += clicked;
                            na += acknowledged;
                            Log.d("SAVING", ns+nc+na+"");
                            bw.write(String.valueOf(ns));
                            bw.newLine();
                            bw.write(String.valueOf(nc));
                            bw.newLine();
                            bw.write(String.valueOf(na));
                            bw.close();
                            Log.d("SAVING", "WROTEDAFILE");
                        }
                    }
                }catch (IOException e) {
                        Log.d("SAVING", "EXCEPTION");
                    }
            }
        }
        recordTimeStamp(sent, clicked, acknowledged, context);
    }

    public static void recordNotificationType(Context context) {
        SharedPreferences shared = context.getSharedPreferences(context.getString(R.string.preference_file_key), Context.MODE_PRIVATE);
        int sound = 0;
        int led = 0;
        int vibration = 0;

        if (isExternalStorageMounted()) {
            File dir = getDirectory(context);
            if (dir.isDirectory()) {
                File file = new File(dir, "TYPELOG");
                try {
                    if(!file.exists()) {
                        file.createNewFile();
                    }
                if (file.isFile() & file.canRead()) {

                        BufferedReader br = new BufferedReader(new FileReader(file));
                        try {
                            sound = Integer.parseInt(br.readLine());
                            led = Integer.parseInt(br.readLine());
                            vibration = Integer.parseInt(br.readLine());
                        }catch (NumberFormatException e){

                        }
                        if (file.isFile() & file.canWrite()) {
                            BufferedWriter bw = new BufferedWriter(new FileWriter(file));
                            if(shared.getBoolean(context.getString(R.string.audio), false)) {
                                sound++;
                            }
                            if(shared.getBoolean(context.getString(R.string.led), false)){
                                led++;
                            }
                            if(shared.getBoolean(context.getString(R.string.vibration), false)) {
                                vibration++;
                            }
                            bw.write(sound);
                            bw.newLine();
                            bw.write(led);
                            bw.newLine();
                            bw.write(vibration);
                        }
                    }
                } catch (IOException e) {

                    }
                }
            }
        }

    /* Checks if external storage is available */
    private static boolean isExternalStorageMounted() {
        return (Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState()));

    }



    private static File getDirectory(Context context) {
        File file = new File(context.getExternalFilesDir(
                Environment.DIRECTORY_DOCUMENTS), "NOTLOGS");
        if (!file.exists()){
            if (!file.mkdirs()) {
                Log.e("ERR", "Directory not created");
            }
    }
        return file;
    }

}