Project

General

Profile

Download (5.13 KB) Statistics
| Branch: | Tag: | Revision:

magiccube / src / main / java / org / distorted / external / RubikFiles.java @ 298f3977

1 35161021 Leszek Koltunski
///////////////////////////////////////////////////////////////////////////////////////////////////
2
// Copyright 2022 Leszek Koltunski                                                               //
3
//                                                                                               //
4
// This file is part of Magic Cube.                                                              //
5
//                                                                                               //
6 1c327853 Leszek Koltunski
// Magic Cube is proprietary software licensed under an EULA which you should have received      //
7
// along with the code. If not, check https://distorted.org/magic/License-Magic-Cube.html        //
8 35161021 Leszek Koltunski
///////////////////////////////////////////////////////////////////////////////////////////////////
9
10
package org.distorted.external;
11
12 806329e3 Leszek Koltunski
import java.io.File;
13 eb985085 Leszek Koltunski
import java.io.FileInputStream;
14
import java.io.FileNotFoundException;
15 806329e3 Leszek Koltunski
import java.io.FileOutputStream;
16
import java.io.IOException;
17 35161021 Leszek Koltunski
import java.io.InputStream;
18 806329e3 Leszek Koltunski
import java.io.OutputStream;
19 5e048300 Leszek Koltunski
import java.util.Locale;
20 806329e3 Leszek Koltunski
21
import android.content.Context;
22
import android.graphics.Bitmap;
23 7fe62d1f Leszek Koltunski
import android.graphics.BitmapFactory;
24 806329e3 Leszek Koltunski
25
///////////////////////////////////////////////////////////////////////////////////////////////////
26 35161021 Leszek Koltunski
27
public class RubikFiles
28
  {
29
  private static RubikFiles mThis;
30
31
///////////////////////////////////////////////////////////////////////////////////////////////////
32
33
  private RubikFiles()
34
    {
35
36
    }
37
38
///////////////////////////////////////////////////////////////////////////////////////////////////
39
// PUBLIC API
40
///////////////////////////////////////////////////////////////////////////////////////////////////
41
42
  public static RubikFiles getInstance()
43
    {
44
    if( mThis==null ) mThis = new RubikFiles();
45
    return mThis;
46
    }
47
48 7fe62d1f Leszek Koltunski
///////////////////////////////////////////////////////////////////////////////////////////////////
49
50 eb985085 Leszek Koltunski
  public InputStream openFile(Context context, String name)
51 7fe62d1f Leszek Koltunski
    {
52
    File file = new File(context.getFilesDir(), name);
53
54 eb985085 Leszek Koltunski
    try
55
      {
56
      return new FileInputStream(file);
57
      }
58
    catch(FileNotFoundException ex)
59
      {
60 84d746d7 Leszek Koltunski
      android.util.Log.e("D", "file "+name+" not found: "+ex.getMessage());
61 eb985085 Leszek Koltunski
      }
62
63
    return null;
64
    }
65
66
///////////////////////////////////////////////////////////////////////////////////////////////////
67
68
  public Bitmap getIcon(Context context, String name)
69
    {
70
    File dir  = context.getFilesDir();
71
    File file = new File(dir, name);
72
73 7fe62d1f Leszek Koltunski
    if( file.exists() )
74
      {
75 eb985085 Leszek Koltunski
      String fname = dir.getAbsolutePath()+"/"+name;
76 7fe62d1f Leszek Koltunski
      return BitmapFactory.decodeFile(fname);
77
      }
78
79
    return null;
80
    }
81
82 35161021 Leszek Koltunski
///////////////////////////////////////////////////////////////////////////////////////////////////
83
84 806329e3 Leszek Koltunski
  public boolean saveFile(Context context, InputStream stream, String name)
85 35161021 Leszek Koltunski
    {
86 806329e3 Leszek Koltunski
    try
87
      {
88
      File file = new File(context.getFilesDir(), name);
89
      OutputStream outStream = new FileOutputStream(file);
90
91
      byte[] buffer = new byte[8*1024];
92
      int bytesRead;
93
      while ((bytesRead = stream.read(buffer)) != -1)
94
        {
95
        outStream.write(buffer, 0, bytesRead);
96
        }
97
      outStream.close();
98
99
      return true;
100
      }
101
    catch(IOException ioe)
102
      {
103
      android.util.Log.e("D", "Exception trying to save "+name+" : "+ioe.getMessage() );
104
      return false;
105
      }
106
    }
107
108
///////////////////////////////////////////////////////////////////////////////////////////////////
109
110 7fe62d1f Leszek Koltunski
  public boolean saveIcon(Context context, Bitmap bmp, String name)
111 806329e3 Leszek Koltunski
    {
112
    try
113
      {
114
      File file = new File(context.getFilesDir(), name);
115
      OutputStream outStream = new FileOutputStream(file);
116
      bmp.compress(Bitmap.CompressFormat.PNG, 100, outStream);
117
      outStream.close();
118
119
      return true;
120
      }
121 ba093b9c Leszek Koltunski
    catch(Exception e)
122 806329e3 Leszek Koltunski
      {
123 ba093b9c Leszek Koltunski
      android.util.Log.e("D", "Exception trying to save "+name+" : "+e.getMessage() );
124 806329e3 Leszek Koltunski
      return false;
125
      }
126 35161021 Leszek Koltunski
    }
127 81493402 Leszek Koltunski
128
///////////////////////////////////////////////////////////////////////////////////////////////////
129
130
  public void deleteIcon(Context context, String name)
131
    {
132 5e048300 Leszek Koltunski
    String filename = name.toLowerCase(Locale.ENGLISH) + ".png";
133 81493402 Leszek Koltunski
    boolean success = context.deleteFile(filename);
134
    if( !success ) android.util.Log.e("D", "failed to delete "+filename);
135
    else android.util.Log.e("D", "successfully deleted "+filename);
136
    }
137
138
///////////////////////////////////////////////////////////////////////////////////////////////////
139
140
  public void deleteJsonObject(Context context, String name)
141
    {
142 5e048300 Leszek Koltunski
    String filename = name.toLowerCase(Locale.ENGLISH) + "_object.json";
143 81493402 Leszek Koltunski
    boolean success = context.deleteFile(filename);
144
    if( !success ) android.util.Log.e("D", "failed to delete "+filename);
145
    else android.util.Log.e("D", "successfully deleted "+filename);
146
    }
147
148
///////////////////////////////////////////////////////////////////////////////////////////////////
149
150
  public void deleteJsonExtras(Context context, String name)
151
    {
152 5e048300 Leszek Koltunski
    String filename = name.toLowerCase(Locale.ENGLISH) + "_extras.json";
153 81493402 Leszek Koltunski
    boolean success = context.deleteFile(filename);
154
    if( !success ) android.util.Log.e("D", "failed to delete "+filename);
155
    else android.util.Log.e("D", "successfully deleted "+filename);
156
    }
157 35161021 Leszek Koltunski
  }