diff --git a/app/src/main/java/com/etesync/syncadapter/resource/CalendarAccount.java b/app/src/main/java/com/etesync/syncadapter/resource/CalendarAccount.java index 5464d5e2..943ca5dc 100644 --- a/app/src/main/java/com/etesync/syncadapter/resource/CalendarAccount.java +++ b/app/src/main/java/com/etesync/syncadapter/resource/CalendarAccount.java @@ -95,7 +95,7 @@ public class CalendarAccount { eventsCur.close(); } - contentProviderClient.close(); + contentProviderClient.release(); cur.close(); return calendarAccounts; } @@ -126,23 +126,4 @@ public class CalendarAccount { public String toString() { return accountName + " calendars:" + calendars.size(); } - - static class Factory implements AndroidEventFactory { - static final LocalEvent.Factory INSTANCE = new LocalEvent.Factory(); - - @Override - public AndroidEvent newInstance(AndroidCalendar calendar, long id, ContentValues baseInfo) { - return new LocalEvent(calendar, id, baseInfo); - } - - @Override - public AndroidEvent newInstance(AndroidCalendar calendar, Event event) { - return new LocalEvent(calendar, event, null, null); - } - - @Override - public AndroidEvent[] newArray(int size) { - return new LocalEvent[size]; - } - } } diff --git a/app/src/main/java/com/etesync/syncadapter/ui/importlocal/ImportActivity.java b/app/src/main/java/com/etesync/syncadapter/ui/importlocal/ImportActivity.java index 079ba8ef..1346688d 100644 --- a/app/src/main/java/com/etesync/syncadapter/ui/importlocal/ImportActivity.java +++ b/app/src/main/java/com/etesync/syncadapter/ui/importlocal/ImportActivity.java @@ -4,17 +4,18 @@ import android.accounts.Account; import android.app.Activity; import android.content.Context; import android.content.Intent; +import android.graphics.Typeface; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; -import android.view.MenuItem; -import android.view.View; import android.view.LayoutInflater; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; +import android.widget.ArrayAdapter; import android.widget.BaseExpandableListAdapter; import android.widget.ExpandableListView; import android.widget.TextView; +import android.widget.Toast; import com.etesync.syncadapter.App; import com.etesync.syncadapter.R; @@ -24,10 +25,9 @@ import com.etesync.syncadapter.resource.LocalCalendar; import com.etesync.syncadapter.resource.LocalEvent; import com.etesync.syncadapter.ui.ImportFragment; +import java.util.HashMap; import java.util.List; -import static com.etesync.syncadapter.resource.CalendarAccount.loadAll; - public class ImportActivity extends AppCompatActivity { public final static String EXTRA_ACCOUNT = "account", EXTRA_COLLECTION_INFO = "collectionInfo"; @@ -91,7 +91,6 @@ public class ImportActivity extends AppCompatActivity { Toast.LENGTH_SHORT).show(); //todo import LocalCalendar localCalendar = (LocalCalendar) calendarAccountList.get(groupPosition).calendars.get(childPosition); - return false; } }); @@ -125,4 +124,96 @@ public class ImportActivity extends AppCompatActivity { if (app.getCertManager() != null) app.getCertManager().appInForeground = false; } + + public class ExpandableListAdapter extends BaseExpandableListAdapter { + + private Context context; + private List calendarAccounts; + + public ExpandableListAdapter(Context context, List calendarAccounts) { + this.context = context; + this.calendarAccounts = calendarAccounts; + } + + @Override + public Object getChild(int groupPosition, int childPosititon) { + return calendarAccounts.get(groupPosition).calendars + .get(childPosititon).toString(); + } + + @Override + public long getChildId(int groupPosition, int childPosition) { + return childPosition; + } + + @Override + public View getChildView(int groupPosition, final int childPosition, + boolean isLastChild, View convertView, ViewGroup parent) { + + final String childText = (String) getChild(groupPosition, childPosition); + + if (convertView == null) { + LayoutInflater inflater = (LayoutInflater) context + .getSystemService(Context.LAYOUT_INFLATER_SERVICE); + convertView = inflater.inflate(R.layout.list_item, null); + } + //Todo add viewholder after we decide about the UI + + TextView txtListChild = (TextView) convertView + .findViewById(R.id.lblListItem); + + txtListChild.setText(childText); + return convertView; + } + + @Override + public int getChildrenCount(int groupPosition) { + return calendarAccounts.get(groupPosition).calendars + .size(); + } + + @Override + public Object getGroup(int groupPosition) { + return calendarAccounts.get(groupPosition).toString(); + } + + @Override + public int getGroupCount() { + return calendarAccounts.size(); + } + + @Override + public long getGroupId(int groupPosition) { + return groupPosition; + } + + @Override + public View getGroupView(int groupPosition, boolean isExpanded, + View convertView, ViewGroup parent) { + String headerTitle = (String) getGroup(groupPosition); + if (convertView == null) { + LayoutInflater inflater = (LayoutInflater) context + .getSystemService(Context.LAYOUT_INFLATER_SERVICE); + convertView = inflater.inflate(R.layout.list_group, null); + } + //Todo add viewholder after we decide about the UI + + TextView lblListHeader = (TextView) convertView + .findViewById(R.id.lblListHeader); + lblListHeader.setTypeface(null, Typeface.BOLD); + lblListHeader.setText(headerTitle); + + return convertView; + } + + @Override + public boolean hasStableIds() { + return false; + } + + @Override + public boolean isChildSelectable(int groupPosition, int childPosition) { + return true; + } + } } diff --git a/app/src/main/res/layout/activity_import.xml b/app/src/main/res/layout/activity_import.xml index 90847740..a9fad99b 100644 --- a/app/src/main/res/layout/activity_import.xml +++ b/app/src/main/res/layout/activity_import.xml @@ -1,8 +1,10 @@