package com.lemenzo.clock.timer;import android.content.*;import org.json.*;import java.util.*;public final class TimerRepository{private final SharedPreferences p;private static final String KEY="items";public TimerRepository(Context c){p=c.createDeviceProtectedStorageContext().getSharedPreferences("timers",0);}public synchronized List<TimerItem> all(){ArrayList<TimerItem>o=new ArrayList<>();try{JSONArray a=new JSONArray(p.getString(KEY,"[]"));for(int i=0;i<a.length();i++)o.add(TimerItem.from(a.getJSONObject(i)));}catch(Exception ignored){}o.sort(Comparator.comparingLong(x->x.endAt));return o;}public synchronized TimerItem get(long id){for(TimerItem t:all())if(t.id==id)return t;return null;}public synchronized void save(TimerItem t){List<TimerItem>a=all();boolean f=false;for(int i=0;i<a.size();i++)if(a.get(i).id==t.id){a.set(i,t);f=true;break;}if(!f)a.add(t);write(a);}public synchronized void delete(long id){List<TimerItem>a=all();a.removeIf(x->x.id==id);write(a);}private void write(List<TimerItem>a){JSONArray j=new JSONArray();for(TimerItem t:a)try{j.put(t.json());}catch(Exception ignored){}p.edit().putString(KEY,j.toString()).apply();}}