Merge "Update display logic for no shared data." into rvc-dev

This commit is contained in:
TreeHugger Robot
2020-04-08 15:11:37 +00:00
committed by Android (Google) Code Review
5 changed files with 82 additions and 52 deletions

View File

@@ -16,6 +16,7 @@
package com.android.settings.development.storage;
import android.app.ActionBar;
import android.app.ListActivity;
import android.app.blob.BlobInfo;
import android.app.blob.BlobStoreManager;
@@ -30,7 +31,6 @@ import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
import androidx.appcompat.app.AlertDialog;
@@ -41,7 +41,6 @@ import com.android.settings.R;
import java.io.IOException;
import java.util.List;
// TODO: have this class extend DashboardFragment for consistency
public class BlobInfoListView extends ListActivity {
private static final String TAG = "BlobInfoListView";
@@ -60,6 +59,17 @@ public class BlobInfoListView extends ListActivity {
mAdapter = new BlobListAdapter(this);
setListAdapter(mAdapter);
final ActionBar actionBar = getActionBar();
if (actionBar != null) {
actionBar.setDisplayHomeAsUpEnabled(true);
}
}
@Override
public boolean onNavigateUp() {
finish();
return true;
}
@Override
@@ -91,14 +101,6 @@ public class BlobInfoListView extends ListActivity {
}
}
private View getEmptyView() {
final View emptyView = mInflater.inflate(R.layout.shared_data_empty_list_view,
(ViewGroup) getListView().getRootView());
final TextView emptyText = emptyView.findViewById(R.id.empty_view_text);
emptyText.setText(R.string.shared_data_no_blobs_text);
return emptyView;
}
private void showDeleteBlobDialog(BlobInfo blob) {
final AlertDialog dialog = new AlertDialog.Builder(mContext)
.setMessage(R.string.shared_data_no_accessors_dialog_text)
@@ -139,7 +141,7 @@ public class BlobInfoListView extends ListActivity {
void updateList(List<BlobInfo> blobs) {
clear();
if (blobs.isEmpty()) {
getListView().setEmptyView(getEmptyView());
finish();
} else {
addAll(blobs);
}

View File

@@ -16,6 +16,7 @@
package com.android.settings.development.storage;
import android.app.ActionBar;
import android.app.ListActivity;
import android.app.blob.BlobInfo;
import android.app.blob.BlobStoreManager;
@@ -44,7 +45,6 @@ import com.android.settings.R;
import java.io.IOException;
import java.util.List;
// TODO: have this class extend DashboardFragment for consistency
public class LeaseInfoListView extends ListActivity {
private static final String TAG = "LeaseInfoListView";
@@ -74,6 +74,17 @@ public class LeaseInfoListView extends ListActivity {
getListView().addHeaderView(getHeaderView());
getListView().addFooterView(getFooterView());
getListView().setClickable(false);
final ActionBar actionBar = getActionBar();
if (actionBar != null) {
actionBar.setDisplayHomeAsUpEnabled(true);
}
}
@Override
public boolean onNavigateUp() {
finish();
return true;
}
private LinearLayout getHeaderView() {

View File

@@ -18,13 +18,20 @@ package com.android.settings.development.storage;
import android.app.blob.BlobStoreManager;
import android.content.Context;
import android.os.UserHandle;
import android.util.Log;
import androidx.preference.Preference;
import com.android.settings.R;
import com.android.settings.core.PreferenceControllerMixin;
import com.android.settingslib.development.DeveloperOptionsPreferenceController;
public class SharedDataPreferenceController extends DeveloperOptionsPreferenceController {
import java.io.IOException;
public class SharedDataPreferenceController extends DeveloperOptionsPreferenceController
implements PreferenceControllerMixin {
private static final String TAG = "SharedDataPrefCtrl";
private static final String SHARED_DATA = "shared_data";
private BlobStoreManager mBlobStoreManager;
@@ -39,14 +46,18 @@ public class SharedDataPreferenceController extends DeveloperOptionsPreferenceCo
return SHARED_DATA;
}
@Override
public boolean isAvailable() {
return mBlobStoreManager != null;
}
@Override
public void updateState(Preference preference) {
preference.setEnabled(mBlobStoreManager != null);
// TODO: update summary to indicate why this preference isn't available
try {
final boolean showPref = mBlobStoreManager != null
&& !mBlobStoreManager.queryBlobsForUser(UserHandle.CURRENT).isEmpty();
preference.setEnabled(showPref);
preference.setSummary(showPref ? R.string.shared_data_summary
: R.string.shared_data_no_blobs_text);
} catch (IOException e) {
Log.e(TAG, "Unable to fetch blobs for current user: " + e.getMessage());
preference.setEnabled(false);
preference.setSummary(R.string.shared_data_no_blobs_text);
}
}
}