summaryrefslogtreecommitdiffstats
path: root/src/com/cyngn/theme/widget/ThemeTagLayout.java
blob: 18635a43a03cb16e61bf4e9b5ca9f097573689cf (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
/*
 * Copyright (C) 2014 The Cyanogen, Inc
 */
package com.cyngn.theme.widget;

import android.content.Context;
import android.util.AttributeSet;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.cyngn.theme.chooser.R;

public class ThemeTagLayout extends LinearLayout {
    private ImageView mAppliedTag;
    private TextView mCustomizedTag;
    private TextView mUpdatedTag;
    private TextView mDefaultTag;
    private TextView mLegacyTag;

    public ThemeTagLayout(Context context) {
        this(context, null);
    }

    public ThemeTagLayout(Context context, AttributeSet attrs) {
        this(context, attrs, 0);
    }

    public ThemeTagLayout(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
    }

    @Override
    protected void onFinishInflate() {
        super.onFinishInflate();
        LayoutInflater inflater =
                (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        mAppliedTag = (ImageView) inflater.inflate(R.layout.tag_applied, this, false);
        mCustomizedTag = (TextView) inflater.inflate(R.layout.tag_customized, this, false);
        mUpdatedTag = (TextView) inflater.inflate(R.layout.tag_updated, this, false);
        mDefaultTag = (TextView) inflater.inflate(R.layout.tag_default, this, false);
        mLegacyTag = (TextView) inflater.inflate(R.layout.tag_legacy, this, false);
    }

    public void setAppliedTagEnabled(boolean enabled) {
        if (enabled) {
            if (findViewById(R.id.tag_applied) != null) return;
            addView(mAppliedTag, 0);
        } else {
            if (findViewById(R.id.tag_applied) == null) return;
            removeView(mAppliedTag);
        }
    }

    public void setCustomizedTagEnabled(boolean enabled) {
        if (enabled) {
            if (findViewById(R.id.tag_customized) != null) return;
            final int childCount = getChildCount();
            if (childCount > 1) {
                for (int i = 0; i < childCount; i++) {
                    final View child = getChildAt(i);
                    if (child != mAppliedTag) {
                        addView(mCustomizedTag, i);
                        break;
                    }
                }
            } else {
                addView(mCustomizedTag);
            }
        } else {
            if (findViewById(R.id.tag_customized) == null) return;
            removeView(mCustomizedTag);
        }
    }

    public boolean isCustomizedTagEnabled() {
        return findViewById(R.id.tag_customized) != null;
    }

    public void setUpdatedTagEnabled(boolean enabled) {
        if (enabled) {
            if (findViewById(R.id.tag_updated) != null) return;
            final int childCount = getChildCount();
            if (childCount > 2) {
                for (int i = 0; i < childCount; i++) {
                    final View child = getChildAt(i);
                    if (child != mAppliedTag && child != mCustomizedTag) {
                        addView(mUpdatedTag, i);
                        break;
                    }
                }
            } else {
                addView(mUpdatedTag);
            }
        } else {
            if (findViewById(R.id.tag_updated) == null) return;
            removeView(mUpdatedTag);
        }
    }

    public boolean isUpdatedTagEnabled() {
        return findViewById(R.id.tag_updated) != null;
    }

    public void setDefaultTagEnabled(boolean enabled) {
        if (enabled) {
            if (findViewById(R.id.tag_default) != null) return;
            addView(mDefaultTag);
        } else {
            if (findViewById(R.id.tag_default) == null) return;
            removeView(mDefaultTag);
        }
    }

    public void setLegacyTagEnabled(boolean enabled) {
        if (enabled) {
            if (findViewById(R.id.tag_legacy) != null) return;
            addView(mLegacyTag);
        } else {
            if (findViewById(R.id.tag_legacy) == null) return;
            removeView(mLegacyTag);
        }
    }
}