1697bc6350e01bc9cf10ab07e1dc200b87db6bc71Tony Mantler/*
2697bc6350e01bc9cf10ab07e1dc200b87db6bc71Tony Mantler * Copyright (C) 2015 The Android Open Source Project
3697bc6350e01bc9cf10ab07e1dc200b87db6bc71Tony Mantler *
4697bc6350e01bc9cf10ab07e1dc200b87db6bc71Tony Mantler * Licensed under the Apache License, Version 2.0 (the "License");
5697bc6350e01bc9cf10ab07e1dc200b87db6bc71Tony Mantler * you may not use this file except in compliance with the License.
6697bc6350e01bc9cf10ab07e1dc200b87db6bc71Tony Mantler * You may obtain a copy of the License at
7697bc6350e01bc9cf10ab07e1dc200b87db6bc71Tony Mantler *
8697bc6350e01bc9cf10ab07e1dc200b87db6bc71Tony Mantler *      http://www.apache.org/licenses/LICENSE-2.0
9697bc6350e01bc9cf10ab07e1dc200b87db6bc71Tony Mantler *
10697bc6350e01bc9cf10ab07e1dc200b87db6bc71Tony Mantler * Unless required by applicable law or agreed to in writing, software
11697bc6350e01bc9cf10ab07e1dc200b87db6bc71Tony Mantler * distributed under the License is distributed on an "AS IS" BASIS,
12697bc6350e01bc9cf10ab07e1dc200b87db6bc71Tony Mantler * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13697bc6350e01bc9cf10ab07e1dc200b87db6bc71Tony Mantler * See the License for the specific language governing permissions and
14697bc6350e01bc9cf10ab07e1dc200b87db6bc71Tony Mantler * limitations under the License
15697bc6350e01bc9cf10ab07e1dc200b87db6bc71Tony Mantler */
16697bc6350e01bc9cf10ab07e1dc200b87db6bc71Tony Mantler
17697bc6350e01bc9cf10ab07e1dc200b87db6bc71Tony Mantlerpackage com.android.tv.settings.dialog;
18697bc6350e01bc9cf10ab07e1dc200b87db6bc71Tony Mantler
19697bc6350e01bc9cf10ab07e1dc200b87db6bc71Tony Mantlerimport android.app.Fragment;
20697bc6350e01bc9cf10ab07e1dc200b87db6bc71Tony Mantlerimport android.graphics.drawable.Drawable;
21697bc6350e01bc9cf10ab07e1dc200b87db6bc71Tony Mantlerimport android.os.Bundle;
228f38002bda894e4e9fd55fb87bff2818460c2304Tony Mantlerimport android.support.annotation.DrawableRes;
238f38002bda894e4e9fd55fb87bff2818460c2304Tony Mantlerimport android.support.annotation.Nullable;
248f38002bda894e4e9fd55fb87bff2818460c2304Tony Mantlerimport android.support.annotation.StringRes;
25697bc6350e01bc9cf10ab07e1dc200b87db6bc71Tony Mantlerimport android.text.TextUtils;
26697bc6350e01bc9cf10ab07e1dc200b87db6bc71Tony Mantlerimport android.view.LayoutInflater;
27697bc6350e01bc9cf10ab07e1dc200b87db6bc71Tony Mantlerimport android.view.View;
28697bc6350e01bc9cf10ab07e1dc200b87db6bc71Tony Mantlerimport android.view.ViewGroup;
29697bc6350e01bc9cf10ab07e1dc200b87db6bc71Tony Mantlerimport android.widget.ImageView;
30697bc6350e01bc9cf10ab07e1dc200b87db6bc71Tony Mantlerimport android.widget.ProgressBar;
31697bc6350e01bc9cf10ab07e1dc200b87db6bc71Tony Mantlerimport android.widget.TextView;
32697bc6350e01bc9cf10ab07e1dc200b87db6bc71Tony Mantler
33697bc6350e01bc9cf10ab07e1dc200b87db6bc71Tony Mantlerimport com.android.tv.settings.R;
34697bc6350e01bc9cf10ab07e1dc200b87db6bc71Tony Mantler
35697bc6350e01bc9cf10ab07e1dc200b87db6bc71Tony Mantlerpublic class ProgressDialogFragment extends Fragment {
36697bc6350e01bc9cf10ab07e1dc200b87db6bc71Tony Mantler
37697bc6350e01bc9cf10ab07e1dc200b87db6bc71Tony Mantler    private ImageView mIconView;
38697bc6350e01bc9cf10ab07e1dc200b87db6bc71Tony Mantler    private TextView mTitleView;
398aba903296170792c2362e9c7fa6ef056ce8cf3aTony Mantler    private TextView mExtraTextView;
40697bc6350e01bc9cf10ab07e1dc200b87db6bc71Tony Mantler    private TextView mSummaryView;
41697bc6350e01bc9cf10ab07e1dc200b87db6bc71Tony Mantler    private ProgressBar mProgressBar;
4244cdbbc4783ca30aef2c64bfe7804cffe818d534Tony Mantler    private int mWidth = -1;
43697bc6350e01bc9cf10ab07e1dc200b87db6bc71Tony Mantler
44697bc6350e01bc9cf10ab07e1dc200b87db6bc71Tony Mantler    @Override
45697bc6350e01bc9cf10ab07e1dc200b87db6bc71Tony Mantler    public @Nullable View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container,
46697bc6350e01bc9cf10ab07e1dc200b87db6bc71Tony Mantler            Bundle savedInstanceState) {
47697bc6350e01bc9cf10ab07e1dc200b87db6bc71Tony Mantler        final ViewGroup view =
48697bc6350e01bc9cf10ab07e1dc200b87db6bc71Tony Mantler                (ViewGroup) inflater.inflate(R.layout.progress_fragment, container, false);
49697bc6350e01bc9cf10ab07e1dc200b87db6bc71Tony Mantler
50697bc6350e01bc9cf10ab07e1dc200b87db6bc71Tony Mantler        mIconView = (ImageView) view.findViewById(android.R.id.icon);
51697bc6350e01bc9cf10ab07e1dc200b87db6bc71Tony Mantler        mTitleView = (TextView) view.findViewById(android.R.id.title);
528aba903296170792c2362e9c7fa6ef056ce8cf3aTony Mantler        mExtraTextView = (TextView) view.findViewById(R.id.extra);
53697bc6350e01bc9cf10ab07e1dc200b87db6bc71Tony Mantler        mSummaryView = (TextView) view.findViewById(android.R.id.summary);
54697bc6350e01bc9cf10ab07e1dc200b87db6bc71Tony Mantler        mProgressBar = (ProgressBar) view.findViewById(android.R.id.progress);
55697bc6350e01bc9cf10ab07e1dc200b87db6bc71Tony Mantler
5644cdbbc4783ca30aef2c64bfe7804cffe818d534Tony Mantler        if (mWidth != -1) {
5744cdbbc4783ca30aef2c64bfe7804cffe818d534Tony Mantler            final ViewGroup.LayoutParams params = view.getLayoutParams();
5844cdbbc4783ca30aef2c64bfe7804cffe818d534Tony Mantler            params.width = mWidth;
5944cdbbc4783ca30aef2c64bfe7804cffe818d534Tony Mantler            view.setLayoutParams(params);
6044cdbbc4783ca30aef2c64bfe7804cffe818d534Tony Mantler        }
6144cdbbc4783ca30aef2c64bfe7804cffe818d534Tony Mantler
62697bc6350e01bc9cf10ab07e1dc200b87db6bc71Tony Mantler        return view;
63697bc6350e01bc9cf10ab07e1dc200b87db6bc71Tony Mantler    }
64697bc6350e01bc9cf10ab07e1dc200b87db6bc71Tony Mantler
65697bc6350e01bc9cf10ab07e1dc200b87db6bc71Tony Mantler    public void setIcon(@DrawableRes int resId) {
66697bc6350e01bc9cf10ab07e1dc200b87db6bc71Tony Mantler        mIconView.setImageResource(resId);
67697bc6350e01bc9cf10ab07e1dc200b87db6bc71Tony Mantler        mIconView.setVisibility(View.VISIBLE);
68697bc6350e01bc9cf10ab07e1dc200b87db6bc71Tony Mantler    }
69697bc6350e01bc9cf10ab07e1dc200b87db6bc71Tony Mantler
70697bc6350e01bc9cf10ab07e1dc200b87db6bc71Tony Mantler    public void setIcon(@Nullable Drawable icon) {
71697bc6350e01bc9cf10ab07e1dc200b87db6bc71Tony Mantler        mIconView.setImageDrawable(icon);
72697bc6350e01bc9cf10ab07e1dc200b87db6bc71Tony Mantler        mIconView.setVisibility(icon == null ? View.GONE : View.VISIBLE);
73697bc6350e01bc9cf10ab07e1dc200b87db6bc71Tony Mantler    }
74697bc6350e01bc9cf10ab07e1dc200b87db6bc71Tony Mantler
75697bc6350e01bc9cf10ab07e1dc200b87db6bc71Tony Mantler    public void setTitle(@StringRes int resId) {
76697bc6350e01bc9cf10ab07e1dc200b87db6bc71Tony Mantler        mTitleView.setText(resId);
77697bc6350e01bc9cf10ab07e1dc200b87db6bc71Tony Mantler    }
78697bc6350e01bc9cf10ab07e1dc200b87db6bc71Tony Mantler
79697bc6350e01bc9cf10ab07e1dc200b87db6bc71Tony Mantler    public void setTitle(CharSequence title) {
80697bc6350e01bc9cf10ab07e1dc200b87db6bc71Tony Mantler        mTitleView.setText(title);
81697bc6350e01bc9cf10ab07e1dc200b87db6bc71Tony Mantler    }
82697bc6350e01bc9cf10ab07e1dc200b87db6bc71Tony Mantler
838aba903296170792c2362e9c7fa6ef056ce8cf3aTony Mantler    public void setExtraText(@StringRes int resId) {
848aba903296170792c2362e9c7fa6ef056ce8cf3aTony Mantler        mExtraTextView.setText(resId);
85697bc6350e01bc9cf10ab07e1dc200b87db6bc71Tony Mantler    }
86697bc6350e01bc9cf10ab07e1dc200b87db6bc71Tony Mantler
878aba903296170792c2362e9c7fa6ef056ce8cf3aTony Mantler    public void setExtraText(CharSequence text) {
888aba903296170792c2362e9c7fa6ef056ce8cf3aTony Mantler        mExtraTextView.setText(text);
898aba903296170792c2362e9c7fa6ef056ce8cf3aTony Mantler        mExtraTextView.setVisibility(TextUtils.isEmpty(text) ? View.GONE : View.VISIBLE);
90697bc6350e01bc9cf10ab07e1dc200b87db6bc71Tony Mantler    }
91697bc6350e01bc9cf10ab07e1dc200b87db6bc71Tony Mantler
92697bc6350e01bc9cf10ab07e1dc200b87db6bc71Tony Mantler    public void setSummary(@StringRes int resId) {
93697bc6350e01bc9cf10ab07e1dc200b87db6bc71Tony Mantler        mSummaryView.setText(resId);
94697bc6350e01bc9cf10ab07e1dc200b87db6bc71Tony Mantler    }
95697bc6350e01bc9cf10ab07e1dc200b87db6bc71Tony Mantler
968aba903296170792c2362e9c7fa6ef056ce8cf3aTony Mantler    public void setSummary(CharSequence summary) {
978aba903296170792c2362e9c7fa6ef056ce8cf3aTony Mantler        mSummaryView.setText(summary);
98697bc6350e01bc9cf10ab07e1dc200b87db6bc71Tony Mantler    }
99697bc6350e01bc9cf10ab07e1dc200b87db6bc71Tony Mantler
100697bc6350e01bc9cf10ab07e1dc200b87db6bc71Tony Mantler    public void setIndeterminte(boolean indeterminte) {
101697bc6350e01bc9cf10ab07e1dc200b87db6bc71Tony Mantler        mProgressBar.setIndeterminate(indeterminte);
102697bc6350e01bc9cf10ab07e1dc200b87db6bc71Tony Mantler    }
103697bc6350e01bc9cf10ab07e1dc200b87db6bc71Tony Mantler
104697bc6350e01bc9cf10ab07e1dc200b87db6bc71Tony Mantler    public void setProgress(int progress) {
105697bc6350e01bc9cf10ab07e1dc200b87db6bc71Tony Mantler        mProgressBar.setProgress(progress);
106697bc6350e01bc9cf10ab07e1dc200b87db6bc71Tony Mantler    }
107697bc6350e01bc9cf10ab07e1dc200b87db6bc71Tony Mantler
108697bc6350e01bc9cf10ab07e1dc200b87db6bc71Tony Mantler    public void setProgressMax(int max) {
109697bc6350e01bc9cf10ab07e1dc200b87db6bc71Tony Mantler        mProgressBar.setMax(max);
110697bc6350e01bc9cf10ab07e1dc200b87db6bc71Tony Mantler    }
11144cdbbc4783ca30aef2c64bfe7804cffe818d534Tony Mantler
11244cdbbc4783ca30aef2c64bfe7804cffe818d534Tony Mantler    public void setContentWidth(int width) {
11344cdbbc4783ca30aef2c64bfe7804cffe818d534Tony Mantler        mWidth = width;
11444cdbbc4783ca30aef2c64bfe7804cffe818d534Tony Mantler        final View root = getView();
11544cdbbc4783ca30aef2c64bfe7804cffe818d534Tony Mantler        if (root == null) {
11644cdbbc4783ca30aef2c64bfe7804cffe818d534Tony Mantler            return;
11744cdbbc4783ca30aef2c64bfe7804cffe818d534Tony Mantler        }
11844cdbbc4783ca30aef2c64bfe7804cffe818d534Tony Mantler        final ViewGroup.LayoutParams params = root.getLayoutParams();
11944cdbbc4783ca30aef2c64bfe7804cffe818d534Tony Mantler        params.width = width;
12044cdbbc4783ca30aef2c64bfe7804cffe818d534Tony Mantler        root.setLayoutParams(params);
12144cdbbc4783ca30aef2c64bfe7804cffe818d534Tony Mantler    }
122697bc6350e01bc9cf10ab07e1dc200b87db6bc71Tony Mantler}
123