Display a progress bar when a network is being brought up.

Change-Id: I5d2c14ffc6010d29ffb832cb924c6b0108fd0048
This commit is contained in:
Lorenzo Colitti
2016-02-18 14:09:50 +09:00
parent 0b3999da19
commit 0c87eb6453
2 changed files with 41 additions and 9 deletions

View File

@@ -256,6 +256,9 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/release_mms" />
<ProgressBar android:id="@+id/mms_progress"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
<LinearLayout
android:orientation="horizontal"
@@ -269,6 +272,9 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/release_supl" />
<ProgressBar android:id="@+id/supl_progress"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
<LinearLayout
android:orientation="horizontal"
@@ -282,6 +288,9 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/release_cell" />
<ProgressBar android:id="@+id/cell_progress"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
<LinearLayout
android:orientation="horizontal"
@@ -295,6 +304,9 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/release_wifi" />
<ProgressBar android:id="@+id/wifi_progress"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
<LinearLayout
android:orientation="horizontal"

View File

@@ -292,22 +292,25 @@ public class Connectivity extends Activity {
private class RequestableNetwork {
private final NetworkRequest mRequest;
private final int mRequestButton, mReleaseButton;
private final int mRequestButton, mReleaseButton, mProgressBar;
private NetworkCallback mCallback;
private Network mNetwork;
public RequestableNetwork(NetworkRequest request, int requestButton, int releaseButton) {
public RequestableNetwork(NetworkRequest request, int requestButton, int releaseButton,
int progressBar) {
mRequest = request;
mRequestButton = requestButton;
mReleaseButton = releaseButton;
mProgressBar = progressBar;
}
public RequestableNetwork(int capability, int requestButton, int releaseButton) {
public RequestableNetwork(int capability, int requestButton, int releaseButton,
int progressBar) {
this(new NetworkRequest.Builder()
.addTransportType(NetworkCapabilities.TRANSPORT_CELLULAR)
.addCapability(capability)
.build(),
requestButton, releaseButton);
requestButton, releaseButton, progressBar);
}
public void addOnClickListener() {
@@ -320,6 +323,8 @@ public class Connectivity extends Activity {
public void setRequested(boolean requested) {
findViewById(mRequestButton).setEnabled(!requested);
findViewById(mReleaseButton).setEnabled(requested);
findViewById(mProgressBar).setVisibility(
requested ? View.VISIBLE : View.GONE);
}
public void request() {
@@ -329,6 +334,16 @@ public class Connectivity extends Activity {
public void onAvailable(Network network) {
mNetwork = network;
onHttpRequestResults(null);
// TODO: replace with:
// runOnUiThread(() -> {
// findViewById(mProgressBar).setVisibility(View.GONE);
// });
runOnUiThread(new Runnable() {
@Override
public void run() {
findViewById(mProgressBar).setVisibility(View.GONE);
}
});
}
@Override
public void onLost(Network network) {
@@ -364,15 +379,20 @@ public class Connectivity extends Activity {
mRequestableNetworks.add(network);
}
private void addRequestableNetwork(int capability, int requestButton, int releaseButton) {
mRequestableNetworks.add(new RequestableNetwork(capability, requestButton, releaseButton));
private void addRequestableNetwork(int capability, int requestButton, int releaseButton,
int progressBar) {
mRequestableNetworks.add(new RequestableNetwork(capability, requestButton, releaseButton,
progressBar));
}
public Connectivity() {
super();
addRequestableNetwork(NET_CAPABILITY_MMS, R.id.request_mms, R.id.release_mms);
addRequestableNetwork(NET_CAPABILITY_SUPL, R.id.request_supl, R.id.release_supl);
addRequestableNetwork(NET_CAPABILITY_INTERNET, R.id.request_cell, R.id.release_cell);
addRequestableNetwork(NET_CAPABILITY_MMS, R.id.request_mms, R.id.release_mms,
R.id.mms_progress);
addRequestableNetwork(NET_CAPABILITY_SUPL, R.id.request_supl, R.id.release_supl,
R.id.supl_progress);
addRequestableNetwork(NET_CAPABILITY_INTERNET, R.id.request_cell, R.id.release_cell,
R.id.cell_progress);
// Make bound requests use cell data.
mBoundTestNetwork = mRequestableNetworks.get(mRequestableNetworks.size() - 1);