am 28a1e658: Merge "Add sample for new ContentLoadingProgressBar." into jb-mr2-ub-dev

* commit '28a1e658c9c028fb5ab239f439cf5b28cc2fe9e9':
  Add sample for new ContentLoadingProgressBar.
This commit is contained in:
Mindy DelliCarpini
2013-08-06 09:32:52 -07:00
committed by Android Git Automerger
4 changed files with 175 additions and 0 deletions

View File

@@ -304,6 +304,14 @@
</intent-filter>
</activity>
<activity android:name=".widget.ContentLoadingProgressBarActivity"
android:label="@string/content_loading_progress_bar">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="com.example.android.supportv4.SUPPORT4_SAMPLE_CODE" />
</intent-filter>
</activity>
<activity android:name=".widget.SlidingPaneLayoutActivity"
android:label="@string/sliding_pane_layout_support">
<intent-filter>

View File

@@ -0,0 +1,55 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2013 The Android Open Source Project
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.
-->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.v4.widget.ContentLoadingProgressBar
android:id="@+id/progressbar"
style="?android:attr/progressBarStyleLarge"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="gone" />
<Button android:id="@+id/show"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/show" />
<Button android:id="@+id/hide"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hide" />
<TextView android:id="@+id/show_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<TextView android:id="@+id/show_text_done"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<TextView android:id="@+id/hide_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<TextView android:id="@+id/hide_text_done"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</LinearLayout>

View File

@@ -54,6 +54,7 @@
<string name="fragment_dialog_support">Fragment/Dialog</string>
<string name="show">Show</string>
<string name="hide">Hide</string>
<string name="fragment_dialog_or_activity_support">Fragment/Dialog or Activity</string>
<string name="fragment_dialog_or_activity_msg">Demonstrates the same fragment
@@ -166,4 +167,6 @@
<string name="sliding_pane_layout_summary">This activity illustrates the use of sliding panes. The content pane may be slid to one side on narrow devices to reveal the left pane used to select content. Sliding panes can be used to fit a UI intended for wider screens in a smaller space. Tapping the Action Bar\'s Up button at the left side of the bar will navigate up in the hierarchy, represented by the left pane. If you rotate the device to landscape mode, on most devices you will see that both panes fit together side by side with no sliding necessary.</string>
<!-- ContentLoadingProgressBar -->
<string name="content_loading_progress_bar">Widget/Content Loading Progress Bar</string>
</resources>

View File

@@ -0,0 +1,109 @@
/*
* Copyright (C) 2013 The Android Open Source Project
*
* 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.example.android.supportv4.widget;
import android.app.Activity;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.ProgressBar;
import android.widget.TextView;
import android.os.Bundle;
import android.os.Handler;
import android.support.v4.widget.ContentLoadingProgressBar;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewTreeObserver;
import android.view.Window;
import com.example.android.supportv4.R;
/**
* Demonstrates how to use the ContentLoadingProgressBar. By default, the
* developer should start the ContentLoadingProgressBar with visibility of
* "gone" or "invisible". The ContentLoadingProgressBar will be shown after the
* default delay for at least a minimum time regardless of when the "hide"
* button is pressed.
*/
public class ContentLoadingProgressBarActivity extends Activity implements
OnClickListener, ViewTreeObserver.OnGlobalLayoutListener {
private Button mShowButton;
private Button mHideButton;
private ContentLoadingProgressBar mBar;
private long mShowTime;
private long mHideTime;
private TextView mShowText;
private TextView mShowTextDone;
private TextView mHideText;
private TextView mHideTextDone;
private int mLastVisibility;
private long mVisibilityChangedTime;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.content_loading_progressbar);
mBar = (ContentLoadingProgressBar)findViewById(R.id.progressbar);
mShowButton = (Button)findViewById(R.id.show);
mShowButton.setOnClickListener(this);
mHideButton = (Button)findViewById(R.id.hide);
mHideButton.setOnClickListener(this);
mShowText = (TextView)findViewById(R.id.show_text);
mShowTextDone = (TextView)findViewById(R.id.show_text_done);
mHideText = (TextView)findViewById(R.id.hide_text);
mHideTextDone = (TextView)findViewById(R.id.hide_text_done);
mLastVisibility = mBar.getVisibility();
mBar.getViewTreeObserver().addOnGlobalLayoutListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.show:
mBar.show();
mShowTime = System.currentTimeMillis();
mShowText.setText("Show clicked at " + mShowTime);
break;
case R.id.hide:
mBar.hide();
mHideTime = System.currentTimeMillis();
mHideText.setText("Hide clicked at " + mHideTime);
break;
}
}
@Override
public void onGlobalLayout() {
final int visibility = mBar.getVisibility();
if (mLastVisibility != visibility) {
if (visibility == View.VISIBLE) {
mVisibilityChangedTime = System.currentTimeMillis();
mShowTextDone.setText("Shown at "
+ (mVisibilityChangedTime - mShowTime));
} else {
mHideTextDone.setText("Hidden after "
+ (System.currentTimeMillis() - mVisibilityChangedTime));
}
mLastVisibility = mBar.getVisibility();
}
}
}