// Path: indicator/src/main/java/com/fuzz/indicator/cell/CutoutCell.java
// public interface CutoutCell {
// 
//     /**
//      * Perform some arbitrary action to represent the provided OffsetEvent.
//      *
//      * @param offsetEvent    whatever just happened
//      * @see OffSetters
//      */
//     void offsetContentBy(@NonNull IndicatorOffsetEvent offsetEvent);
// 
//     /**
//      * @return the actual view represented by this object
//      */
//     @NonNull
//     View getItemView();
// }


import android.content.Context;
import android.content.res.TypedArray;
import android.support.annotation.DrawableRes;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.util.AttributeSet;
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewGroup.MarginLayoutParams;
import android.widget.LinearLayout;
import com.fuzz.indicator.cell.CutoutCell;
import java.lang.ref.WeakReference;
/*
 * Copyright 2016 Philip Cohn-Cort
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.fuzz.indicator;




/**
 * Plain Old Java Object representing the configuration of the child views inside
 * {@link CutoutViewIndicator}.
 *
 * @author Philip Cohn-Cort (Fuzz)
 */
public class CutoutViewLayoutParams extends LinearLayout.LayoutParams {
    @DrawableRes
    public int cellBackgroundId;
    /**
     * This is the id of the drawable currently acting as indicator. If 0, no indicator will be shown.
     */
    @DrawableRes
    public int indicatorDrawableId;

    @NonNull
// Path: indicator/src/main/java/com/fuzz/indicator/cell/CutoutCell.java
// public interface CutoutCell {
// 
//     /**
//      * Perform some arbitrary action to represent the provided OffsetEvent.
//      *
//      * @param offsetEvent    whatever just happened
//      * @see OffSetters
//      */
//     void offsetContentBy(@NonNull IndicatorOffsetEvent offsetEvent);
// 
//     /**
//      * @return the actual view represented by this object
//      */
//     @NonNull
//     View getItemView();
// }


// Path: indicator/src/main/java/com/fuzz/indicator/CutoutViewLayoutParams.java
import android.content.Context;
import android.content.res.TypedArray;
import android.support.annotation.DrawableRes;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.util.AttributeSet;
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewGroup.MarginLayoutParams;
import android.widget.LinearLayout;
import com.fuzz.indicator.cell.CutoutCell;
import java.lang.ref.WeakReference;

/*
 * Copyright 2016 Philip Cohn-Cort
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.fuzz.indicator;




/**
 * Plain Old Java Object representing the configuration of the child views inside
 * {@link CutoutViewIndicator}.
 *
 * @author Philip Cohn-Cort (Fuzz)
 */
public class CutoutViewLayoutParams extends LinearLayout.LayoutParams {
    @DrawableRes
    public int cellBackgroundId;
    /**
     * This is the id of the drawable currently acting as indicator. If 0, no indicator will be shown.
     */
    @DrawableRes
    public int indicatorDrawableId;

    @NonNull
    protected WeakReference<CutoutCell> cutoutCell = new WeakReference<>(null);