// Path: app/src/main/java/com/mgilangjanuar/dev/goscele/modules/main/model/ScheduleDailyGroupModel.java
// @Table(name = "schedule_daily_group")
// public class ScheduleDailyGroupModel extends BaseModel {
// 
//     @Column(name = "day")
//     public String day;
// 
//     public List<ScheduleDailyModel> scheduleDailyModels() {
//         return getMany(ScheduleDailyModel.class, "scheduleDailyGroupModel");
//     }
// }
// 
// Path: app/src/main/java/com/mgilangjanuar/dev/goscele/modules/main/model/ScheduleDailyModel.java
// @Table(name = "schedule_daily")
// public class ScheduleDailyModel extends BaseModel {
// 
//     @Column(name = "desc")
//     public String desc;
// 
//     @Column(name = "time")
//     public String time;
// 
//     @Column(name = "scheduleDailyGroupModel")
//     public ScheduleDailyGroupModel scheduleDailyGroupModel;
// }
// 
// Path: app/src/main/java/com/mgilangjanuar/dev/goscele/modules/widget/view/ScheduleDailyWidget.java
// public class ScheduleDailyWidget extends AppWidgetProvider {
// 
//     private static boolean IS_NOT_READY_YET;
// 
//     private static void updateAppWidget(Context context, AppWidgetManager appWidgetManager, int appWidgetId) {
//         RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.schedule_daily_widget);
// 
//         Intent intent = new Intent(context, ScheduleDailyService.class);
//         intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId);
//         intent.setData(Uri.parse(intent.toUri(Intent.URI_INTENT_SCHEME)));
//         views.setRemoteAdapter(appWidgetId, R.id.list_item, intent);
// 
//         views.setViewVisibility(R.id.sync_instruction, IS_NOT_READY_YET ? TextView.VISIBLE : TextView.GONE);
// 
// 
//         Intent launchMain = new Intent(context, MainActivity.class);
//         PendingIntent pendingMainIntent = PendingIntent.getActivity(context, 0, launchMain, 0);
//         views.setOnClickPendingIntent(R.id.widget_daily, pendingMainIntent);
// 
//         appWidgetManager.notifyAppWidgetViewDataChanged(appWidgetId, R.id.list_item);
//         appWidgetManager.updateAppWidget(appWidgetId, views);
//     }
// 
//     @Override
//     public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
//         for (int appWidgetId : appWidgetIds) {
//             updateAppWidget(context, appWidgetManager, appWidgetId);
//         }
//         super.onUpdate(context, appWidgetManager, appWidgetIds);
//     }
// 
//     @Override
//     public void onEnabled(Context context) {
//     }
// 
//     @Override
//     public void onDisabled(Context context) {
//     }
// 
//     @Override
//     public void onReceive(Context context, Intent intent) {
//         super.onReceive(context, intent);
// 
//         boolean isDataChange = Constant.WIDGET_ACTION_DATA_CHANGE.equals(intent.getAction()) && intent.getBooleanExtra("isEmptyList", false);
//         if (IS_NOT_READY_YET != isDataChange) {
//             IS_NOT_READY_YET = isDataChange;
// 
//             AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(context);
//             ComponentName thisAppWidget = new ComponentName(context.getPackageName(), ScheduleDailyWidget.class.getName());
//             onUpdate(context, appWidgetManager, appWidgetManager.getAppWidgetIds(thisAppWidget));
//         }
//     }
// }


import android.content.Context;
import android.content.Intent;
import android.text.Spannable;
import android.text.SpannableString;
import android.text.TextUtils;
import android.text.style.ForegroundColorSpan;
import android.text.style.RelativeSizeSpan;
import android.widget.RemoteViews;
import android.widget.RemoteViewsService;
import com.mgilangjanuar.dev.goscele.R;
import com.mgilangjanuar.dev.goscele.modules.main.model.ScheduleDailyGroupModel;
import com.mgilangjanuar.dev.goscele.modules.main.model.ScheduleDailyModel;
import com.mgilangjanuar.dev.goscele.modules.widget.view.ScheduleDailyWidget;
import java.util.ArrayList;
import java.util.List;
package com.mgilangjanuar.dev.goscele.modules.widget.provider;




/**
 * Created by mgilangjanuar (mgilangjanuar@gmail.com)
 *
 * @since 2017
 */

public class ScheduleDailyProvider implements RemoteViewsService.RemoteViewsFactory {

    private Context context;
    private List<ScheduleDailyGroupModel> list;

    public ScheduleDailyProvider(Context context) {
        this.context = context;
        list = new ArrayList<>();
    }

    private void populateData(){
        list = new ScheduleDailyGroupModel().find().execute();

//        if (list.isEmpty()) {
//            Intent intent = new Intent(context, ScheduleDailyWidget.class);
//            intent.setAction("CHECK_LIST");
//            intent.putExtra("isEmptyList", list.isEmpty());
//            context.sendBroadcast(intent);
//        }
    }


    @Override
    public void onCreate() {
        populateData();
    }

    @Override
    public void onDataSetChanged() {
        // populateData();
        Intent intent = new Intent(context, ScheduleDailyWidget.class);
        intent.setAction("CHECK_LIST");
        intent.putExtra("isEmptyList", list.isEmpty());
        context.sendBroadcast(intent);
    }

    @Override
    public void onDestroy() {
        list.clear();
    }

    @Override
// Path: app/src/main/java/com/mgilangjanuar/dev/goscele/modules/main/model/ScheduleDailyGroupModel.java
// @Table(name = "schedule_daily_group")
// public class ScheduleDailyGroupModel extends BaseModel {
// 
//     @Column(name = "day")
//     public String day;
// 
//     public List<ScheduleDailyModel> scheduleDailyModels() {
//         return getMany(ScheduleDailyModel.class, "scheduleDailyGroupModel");
//     }
// }
// 
// Path: app/src/main/java/com/mgilangjanuar/dev/goscele/modules/main/model/ScheduleDailyModel.java
// @Table(name = "schedule_daily")
// public class ScheduleDailyModel extends BaseModel {
// 
//     @Column(name = "desc")
//     public String desc;
// 
//     @Column(name = "time")
//     public String time;
// 
//     @Column(name = "scheduleDailyGroupModel")
//     public ScheduleDailyGroupModel scheduleDailyGroupModel;
// }
// 
// Path: app/src/main/java/com/mgilangjanuar/dev/goscele/modules/widget/view/ScheduleDailyWidget.java
// public class ScheduleDailyWidget extends AppWidgetProvider {
// 
//     private static boolean IS_NOT_READY_YET;
// 
//     private static void updateAppWidget(Context context, AppWidgetManager appWidgetManager, int appWidgetId) {
//         RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.schedule_daily_widget);
// 
//         Intent intent = new Intent(context, ScheduleDailyService.class);
//         intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId);
//         intent.setData(Uri.parse(intent.toUri(Intent.URI_INTENT_SCHEME)));
//         views.setRemoteAdapter(appWidgetId, R.id.list_item, intent);
// 
//         views.setViewVisibility(R.id.sync_instruction, IS_NOT_READY_YET ? TextView.VISIBLE : TextView.GONE);
// 
// 
//         Intent launchMain = new Intent(context, MainActivity.class);
//         PendingIntent pendingMainIntent = PendingIntent.getActivity(context, 0, launchMain, 0);
//         views.setOnClickPendingIntent(R.id.widget_daily, pendingMainIntent);
// 
//         appWidgetManager.notifyAppWidgetViewDataChanged(appWidgetId, R.id.list_item);
//         appWidgetManager.updateAppWidget(appWidgetId, views);
//     }
// 
//     @Override
//     public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
//         for (int appWidgetId : appWidgetIds) {
//             updateAppWidget(context, appWidgetManager, appWidgetId);
//         }
//         super.onUpdate(context, appWidgetManager, appWidgetIds);
//     }
// 
//     @Override
//     public void onEnabled(Context context) {
//     }
// 
//     @Override
//     public void onDisabled(Context context) {
//     }
// 
//     @Override
//     public void onReceive(Context context, Intent intent) {
//         super.onReceive(context, intent);
// 
//         boolean isDataChange = Constant.WIDGET_ACTION_DATA_CHANGE.equals(intent.getAction()) && intent.getBooleanExtra("isEmptyList", false);
//         if (IS_NOT_READY_YET != isDataChange) {
//             IS_NOT_READY_YET = isDataChange;
// 
//             AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(context);
//             ComponentName thisAppWidget = new ComponentName(context.getPackageName(), ScheduleDailyWidget.class.getName());
//             onUpdate(context, appWidgetManager, appWidgetManager.getAppWidgetIds(thisAppWidget));
//         }
//     }
// }


// Path: app/src/main/java/com/mgilangjanuar/dev/goscele/modules/widget/provider/ScheduleDailyProvider.java
import android.content.Context;
import android.content.Intent;
import android.text.Spannable;
import android.text.SpannableString;
import android.text.TextUtils;
import android.text.style.ForegroundColorSpan;
import android.text.style.RelativeSizeSpan;
import android.widget.RemoteViews;
import android.widget.RemoteViewsService;
import com.mgilangjanuar.dev.goscele.R;
import com.mgilangjanuar.dev.goscele.modules.main.model.ScheduleDailyGroupModel;
import com.mgilangjanuar.dev.goscele.modules.main.model.ScheduleDailyModel;
import com.mgilangjanuar.dev.goscele.modules.widget.view.ScheduleDailyWidget;
import java.util.ArrayList;
import java.util.List;

package com.mgilangjanuar.dev.goscele.modules.widget.provider;




/**
 * Created by mgilangjanuar (mgilangjanuar@gmail.com)
 *
 * @since 2017
 */

public class ScheduleDailyProvider implements RemoteViewsService.RemoteViewsFactory {

    private Context context;
    private List<ScheduleDailyGroupModel> list;

    public ScheduleDailyProvider(Context context) {
        this.context = context;
        list = new ArrayList<>();
    }

    private void populateData(){
        list = new ScheduleDailyGroupModel().find().execute();

//        if (list.isEmpty()) {
//            Intent intent = new Intent(context, ScheduleDailyWidget.class);
//            intent.setAction("CHECK_LIST");
//            intent.putExtra("isEmptyList", list.isEmpty());
//            context.sendBroadcast(intent);
//        }
    }


    @Override
    public void onCreate() {
        populateData();
    }

    @Override
    public void onDataSetChanged() {
        // populateData();
        Intent intent = new Intent(context, ScheduleDailyWidget.class);
        intent.setAction("CHECK_LIST");
        intent.putExtra("isEmptyList", list.isEmpty());
        context.sendBroadcast(intent);
    }

    @Override
    public void onDestroy() {
        list.clear();
    }

    @Override
    public int getCount() {