Revision 477f9217
Added by Leszek Koltunski 2 days ago
| src/main/java/org/distorted/helpers/RubikFiles.java | ||
|---|---|---|
| 135 | 135 |
else android.util.Log.e("D", "successfully deleted "+filename);
|
| 136 | 136 |
} |
| 137 | 137 |
|
| 138 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
| 139 |
|
|
| 140 |
public void deleteFile(Context context, String name) |
|
| 141 |
{
|
|
| 142 |
boolean success = context.deleteFile(name); |
|
| 143 |
if( !success ) android.util.Log.e("D", "failed to delete "+name);
|
|
| 144 |
else android.util.Log.e("D", "successfully deleted "+name);
|
|
| 145 |
} |
|
| 146 |
|
|
| 138 | 147 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| 139 | 148 |
|
| 140 | 149 |
public void deleteJsonObject(Context context, String name) |
| 141 | 150 |
{
|
| 142 |
String filename = name.toLowerCase(Locale.ENGLISH) + "_object.json"; |
|
| 143 |
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);
|
|
| 151 |
deleteFile(context,name.toLowerCase(Locale.ENGLISH) + "_object.json"); |
|
| 146 | 152 |
} |
| 147 | 153 |
|
| 148 | 154 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| 149 | 155 |
|
| 150 | 156 |
public void deleteJsonExtras(Context context, String name) |
| 151 | 157 |
{
|
| 152 |
String filename = name.toLowerCase(Locale.ENGLISH) + "_extras.json"; |
|
| 153 |
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);
|
|
| 158 |
deleteFile(context,name.toLowerCase(Locale.ENGLISH) + "_extras.json"); |
|
| 156 | 159 |
} |
| 157 | 160 |
} |
| src/main/java/org/distorted/helpers/RubikRememberedSolves.java | ||
|---|---|---|
| 25 | 25 |
import java.io.InputStream; |
| 26 | 26 |
import java.io.InputStreamReader; |
| 27 | 27 |
import java.nio.charset.StandardCharsets; |
| 28 |
import java.util.Locale; |
|
| 28 | 29 |
|
| 29 | 30 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| 30 | 31 |
|
| ... | ... | |
| 40 | 41 |
|
| 41 | 42 |
} |
| 42 | 43 |
|
| 44 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
| 45 |
|
|
| 46 |
private String produceFilename(String objname) |
|
| 47 |
{
|
|
| 48 |
return objname.toLowerCase(Locale.ENGLISH)+"_solves.json"; |
|
| 49 |
} |
|
| 50 |
|
|
| 43 | 51 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| 44 | 52 |
|
| 45 | 53 |
private String readContents(InputStream stream) throws IOException |
| ... | ... | |
| 191 | 199 |
public JSONArray readFile(Activity act, String objname) |
| 192 | 200 |
{
|
| 193 | 201 |
RubikFiles files = RubikFiles.getInstance(); |
| 194 |
InputStream file = files.openFile(act,objname.toLowerCase()+"_solves.json");
|
|
| 202 |
InputStream file = files.openFile(act,produceFilename(objname));
|
|
| 195 | 203 |
|
| 196 | 204 |
if( file==null ) return null; |
| 197 | 205 |
|
| ... | ... | |
| 206 | 214 |
return null; |
| 207 | 215 |
} |
| 208 | 216 |
|
| 217 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
| 218 |
|
|
| 219 |
public void deleteFile(Activity act, String objname) |
|
| 220 |
{
|
|
| 221 |
String filename = produceFilename(objname); |
|
| 222 |
RubikFiles files = RubikFiles.getInstance(); |
|
| 223 |
files.deleteFile(act,filename); |
|
| 224 |
} |
|
| 225 |
|
|
| 209 | 226 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| 210 | 227 |
|
| 211 | 228 |
public void deleteSolve(Activity act, String objname, int level, long time) |
| 212 | 229 |
{
|
| 213 |
String filename = objname.toLowerCase()+"_solves.json";
|
|
| 230 |
String filename = produceFilename(objname);
|
|
| 214 | 231 |
RubikFiles files = RubikFiles.getInstance(); |
| 215 | 232 |
InputStream input= files.openFile(act,filename); |
| 216 | 233 |
|
| ... | ... | |
| 238 | 255 |
|
| 239 | 256 |
public void rememberSolve(Activity act, String objname, int level, int elapsed, Static4D rot, TwistyObject object) |
| 240 | 257 |
{
|
| 241 |
String filename = objname.toLowerCase()+"_solves.json";
|
|
| 258 |
String filename = produceFilename(objname);
|
|
| 242 | 259 |
RubikFiles files = RubikFiles.getInstance(); |
| 243 | 260 |
InputStream input= files.openFile(act,filename); |
| 244 | 261 |
String contents = addInfo(input,level,elapsed,rot,object); |
| src/main/java/org/distorted/main/MainObjectPopup.java | ||
|---|---|---|
| 24 | 24 |
import android.widget.PopupWindow; |
| 25 | 25 |
import android.widget.TextView; |
| 26 | 26 |
|
| 27 |
import androidx.annotation.NonNull; |
|
| 28 |
|
|
| 27 | 29 |
import org.distorted.helpers.RubikRememberedSolves; |
| 28 | 30 |
import org.distorted.helpers.RubikScores; |
| 29 | 31 |
import org.distorted.library.type.Static4D; |
| ... | ... | |
| 207 | 209 |
TextView levels = layout.findViewById(R.id.objectLevels); |
| 208 | 210 |
levels.setTextSize(TypedValue.COMPLEX_UNIT_PX, mMenuTextSize); |
| 209 | 211 |
|
| 210 |
setupLevelButtons(act,object,layout,width,height,padding,marginH,darkC,passedC); |
|
| 212 |
if( object!=null ) |
|
| 213 |
setupLevelButtons(act,object,layout,width,height,padding,marginH,darkC,passedC); |
|
| 211 | 214 |
} |
| 212 | 215 |
|
| 213 | 216 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| 214 | 217 |
|
| 215 |
private void setupLevelButtons(MainActivity act, RubikObject object, View layout, int width, int height, int padding, int margin, int darkC, int passedC) |
|
| 218 |
private void setupLevelButtons(MainActivity act, @NonNull RubikObject object, View layout, int width, |
|
| 219 |
int height, int padding, int margin, int darkC, int passedC) |
|
| 216 | 220 |
{
|
| 217 | 221 |
RubikScores scores = RubikScores.getInstance(act); |
| 218 | 222 |
Resources res = act.getResources(); |
| ... | ... | |
| 238 | 242 |
level[7] = layout.findViewById(R.id.level7); |
| 239 | 243 |
level[8] = layout.findViewById(R.id.levelM); |
| 240 | 244 |
|
| 241 |
int numScramble = object==null ? 1 : object.getNumScramble();
|
|
| 245 |
int numScramble = object.getNumScramble(); |
|
| 242 | 246 |
int min = Math.min(numScramble,LEVELS_SHOWN); |
| 243 | 247 |
|
| 244 | 248 |
if( numScramble>=1 && numScramble<=7 ) |
| ... | ... | |
| 304 | 308 |
catch(JSONException jex) |
| 305 | 309 |
{
|
| 306 | 310 |
android.util.Log.e("D", "Exception 2 trying to parse file: "+jex.getMessage() );
|
| 311 |
solves.deleteFile(act,object.getLowerName()); |
|
| 312 |
act.switchToPlay(object,mObjectOrdinal,scrambles,ll,0,null,null); |
|
| 307 | 313 |
} |
| 308 | 314 |
} |
| 309 | 315 |
else |
Also available in: Unified diff
Progress remembering solves.