diff options
author | Andrew Lee <anwlee@google.com> | 2015-10-12 18:53:08 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2015-10-12 18:53:08 +0000 |
commit | b34b9b34d3759c0b313d9fe08c8010a659807c62 (patch) | |
tree | 8de838ee252a50e8b6a75413f3cde49344f15466 /src | |
parent | d156342c43389367c4528fb395fe3542bfe8d60e (diff) | |
parent | 3663afe2e1afb109e117e5b707e8ed9547ed2103 (diff) |
Merge "Combine blocked number fragments into Activity." into ub-contactsdialer-a-dev
Diffstat (limited to 'src')
-rw-r--r-- | src/com/android/dialer/filterednumber/BlockedNumberFragment.java | 13 | ||||
-rw-r--r-- | src/com/android/dialer/filterednumber/ManageBlockedNumbersActivity.java (renamed from src/com/android/dialer/filterednumber/BlockedNumberSearchActivity.java) | 143 | ||||
-rw-r--r-- | src/com/android/dialer/list/BlockedListSearchFragment.java | 30 | ||||
-rw-r--r-- | src/com/android/dialer/list/SearchFragment.java | 4 | ||||
-rw-r--r-- | src/com/android/dialer/settings/DialerSettingsActivity.java | 6 |
5 files changed, 132 insertions, 64 deletions
diff --git a/src/com/android/dialer/filterednumber/BlockedNumberFragment.java b/src/com/android/dialer/filterednumber/BlockedNumberFragment.java index 79e5861dc..e12fd6b38 100644 --- a/src/com/android/dialer/filterednumber/BlockedNumberFragment.java +++ b/src/com/android/dialer/filterednumber/BlockedNumberFragment.java @@ -27,7 +27,6 @@ import android.view.View; import android.view.ViewGroup; import com.android.dialer.R; -import com.android.dialer.database.FilteredNumberAsyncQueryHandler; import com.android.dialer.database.FilteredNumberContract; public class BlockedNumberFragment extends ListFragment implements @@ -38,12 +37,14 @@ public class BlockedNumberFragment extends ListFragment implements @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); + LayoutInflater inflater = LayoutInflater.from(getContext()); getListView().addHeaderView(inflater.inflate(R.layout.blocked_number_header, null)); if (mAdapter == null) { mAdapter = new BlockedNumberAdapter(getContext()); } setListAdapter(mAdapter); + getActivity().findViewById(R.id.add_number_button).setOnClickListener(this); getListView().getEmptyView().findViewById(R.id.add_number_button).setOnClickListener(this); } @@ -61,8 +62,8 @@ public class BlockedNumberFragment extends ListFragment implements } @Override - public View onCreateView(LayoutInflater inflater, ViewGroup container, - Bundle savedInstanceState) { + public View onCreateView( + LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.blocked_number_fragment, container, false); return view; } @@ -95,6 +96,10 @@ public class BlockedNumberFragment extends ListFragment implements @Override public void onClick(final View v) { - startActivity(new Intent(getActivity(), BlockedNumberSearchActivity.class)); + ManageBlockedNumbersActivity manageBlockedNumbersActivity = + (ManageBlockedNumbersActivity) getActivity(); + if (manageBlockedNumbersActivity != null && v.getId() == R.id.add_number_button) { + manageBlockedNumbersActivity.enterSearchUi(); + } } } diff --git a/src/com/android/dialer/filterednumber/BlockedNumberSearchActivity.java b/src/com/android/dialer/filterednumber/ManageBlockedNumbersActivity.java index cfa404f05..356c55cee 100644 --- a/src/com/android/dialer/filterednumber/BlockedNumberSearchActivity.java +++ b/src/com/android/dialer/filterednumber/ManageBlockedNumbersActivity.java @@ -18,6 +18,7 @@ package com.android.dialer.filterednumber; import android.app.Fragment; import android.app.FragmentTransaction; import android.content.Intent; +import android.graphics.drawable.ColorDrawable; import android.net.Uri; import android.os.Bundle; import android.support.v7.app.ActionBar; @@ -26,6 +27,7 @@ import android.text.Editable; import android.text.TextWatcher; import android.util.Log; import android.util.TypedValue; +import android.view.MenuItem; import android.widget.EditText; import android.widget.FrameLayout; import android.widget.FrameLayout.LayoutParams; @@ -42,16 +44,23 @@ import com.android.dialer.list.BlockedListSearchFragment; import com.android.dialer.list.SearchFragment; import com.android.dialer.widget.SearchEditTextLayout; -public class BlockedNumberSearchActivity extends AppCompatActivity +public class ManageBlockedNumbersActivity extends AppCompatActivity implements SearchFragment.HostInterface { + + private static final String TAG_BLOCKED_MANAGEMENT_FRAGMENT = "blocked_management"; private static final String TAG_BLOCKED_SEARCH_FRAGMENT = "blocked_search"; private FilteredNumberAsyncQueryHandler mFilteredNumberAsyncQueryHandler; + + private BlockedNumberFragment mManagementFragment; private SearchFragment mSearchFragment; + private EditText mSearchView; private ActionBar mActionBar; private String mSearchQuery; + private boolean mIsShowingManagementUi; + private final TextWatcher mPhoneSearchQueryTextListener = new TextWatcher() { @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { @@ -72,17 +81,93 @@ public class BlockedNumberSearchActivity extends AppCompatActivity } }; + private final SearchEditTextLayout.Callback mSearchLayoutCallback = + new SearchEditTextLayout.Callback() { + @Override + public void onBackButtonClicked() { + showManagementUi(); + } + + @Override + public void onSearchViewClicked() { + } + }; + @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); + setContentView(R.layout.blocked_numbers_activity); + mFilteredNumberAsyncQueryHandler = new FilteredNumberAsyncQueryHandler(getContentResolver()); - setContentView(R.layout.search_activity); + showManagementUi(); + } + + private void showManagementUi() { + mIsShowingManagementUi = true; + + showManagementUiActionBar(); + + final FragmentTransaction transaction = getFragmentManager().beginTransaction(); + if (mSearchFragment != null) { + transaction.hide(mSearchFragment); + } + + BlockedNumberFragment fragment = (BlockedNumberFragment) getFragmentManager() + .findFragmentByTag(TAG_BLOCKED_MANAGEMENT_FRAGMENT); + if (fragment == null) { + fragment = new BlockedNumberFragment(); + transaction.add(R.id.blocked_numbers_activity_container, fragment, + TAG_BLOCKED_MANAGEMENT_FRAGMENT); + } else { + transaction.show(fragment); + } + transaction.commit(); + } + private void showManagementUiActionBar() { + mActionBar = getSupportActionBar(); + ColorDrawable backgroundDrawable = new ColorDrawable(getColor(R.color.dialer_theme_color)); + mActionBar.setBackgroundDrawable(backgroundDrawable); + mActionBar.setElevation(getResources().getDimensionPixelSize(R.dimen.action_bar_elevation)); + mActionBar.setDisplayShowCustomEnabled(false); + mActionBar.setDisplayHomeAsUpEnabled(true); + mActionBar.setDisplayShowHomeEnabled(true); + mActionBar.setDisplayShowTitleEnabled(true); + mActionBar.setTitle(R.string.manage_blocked_numbers_label); + } + + public void enterSearchUi() { + mIsShowingManagementUi = false; + + showSearchUiActionBar(); + + final FragmentTransaction transaction = getFragmentManager().beginTransaction(); + if (mManagementFragment != null) { + transaction.hide(mManagementFragment); + } + + BlockedListSearchFragment fragment = (BlockedListSearchFragment) getFragmentManager() + .findFragmentByTag(TAG_BLOCKED_SEARCH_FRAGMENT); + if (fragment == null) { + fragment = new BlockedListSearchFragment(); + fragment.setHasOptionsMenu(false); + fragment.setShowEmptyListForNullQuery(true); + fragment.setDirectorySearchEnabled(false); + transaction.add(R.id.blocked_numbers_activity_container, fragment, + TAG_BLOCKED_SEARCH_FRAGMENT); + } else { + transaction.show(fragment); + } + transaction.commit(); + } + + private void showSearchUiActionBar() { mActionBar = getSupportActionBar(); mActionBar.setCustomView(R.layout.search_edittext); mActionBar.setBackgroundDrawable(null); + mActionBar.setElevation(0); mActionBar.setDisplayShowCustomEnabled(true); mActionBar.setDisplayHomeAsUpEnabled(false); mActionBar.setDisplayShowHomeEnabled(false); @@ -90,49 +175,41 @@ public class BlockedNumberSearchActivity extends AppCompatActivity final SearchEditTextLayout searchEditTextLayout = (SearchEditTextLayout) mActionBar .getCustomView().findViewById(R.id.search_view_container); searchEditTextLayout.expand(false, true); - searchEditTextLayout.setCallback(new SearchEditTextLayout.Callback() { - @Override - public void onBackButtonClicked() { - onBackPressed(); - } - - @Override - public void onSearchViewClicked() { - } - }); + searchEditTextLayout.setCallback(mSearchLayoutCallback); mSearchView = (EditText) searchEditTextLayout.findViewById(R.id.search_view); mSearchView.addTextChangedListener(mPhoneSearchQueryTextListener); mSearchView.setHint(R.string.block_number_search_hint); + + // TODO: Don't set custom text size; use default search text size. mSearchView.setTextSize(TypedValue.COMPLEX_UNIT_PX, getResources().getDimension(R.dimen.blocked_number_search_text_size)); - - enterSearchUi(); } - private void enterSearchUi() { - if (mSearchFragment != null) { - return; + @Override + public void onAttachFragment(Fragment fragment) { + if (fragment instanceof BlockedNumberFragment) { + mManagementFragment = (BlockedNumberFragment) fragment; + } else if (fragment instanceof BlockedListSearchFragment) { + mSearchFragment = (BlockedListSearchFragment) fragment; } - final FragmentTransaction transaction = getFragmentManager().beginTransaction(); - BlockedListSearchFragment fragment = (BlockedListSearchFragment) getFragmentManager() - .findFragmentByTag(TAG_BLOCKED_SEARCH_FRAGMENT); - if (fragment == null) { - fragment = new BlockedListSearchFragment(); - transaction.add(R.id.search_activity_container, fragment, TAG_BLOCKED_SEARCH_FRAGMENT); - } else { - transaction.show(fragment); + } + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + if (item.getItemId() == android.R.id.home) { + onBackPressed(); + return true; } - fragment.setHasOptionsMenu(false); - fragment.setShowEmptyListForNullQuery(true); - fragment.setDirectorySearchEnabled(false); - transaction.commit(); + return false; } @Override - public void onAttachFragment(Fragment fragment) { - if (fragment instanceof BlockedListSearchFragment) { - mSearchFragment = (BlockedListSearchFragment) fragment; + public void onBackPressed() { + if (mIsShowingManagementUi) { + super.onBackPressed(); + } else { + showManagementUi(); } } @@ -158,6 +235,6 @@ public class BlockedNumberSearchActivity extends AppCompatActivity @Override public int getActionBarHeight() { - return getResources().getDimensionPixelSize(R.dimen.action_bar_height_large); + return getSupportActionBar().getHeight(); } } diff --git a/src/com/android/dialer/list/BlockedListSearchFragment.java b/src/com/android/dialer/list/BlockedListSearchFragment.java index 675081254..eef24afb1 100644 --- a/src/com/android/dialer/list/BlockedListSearchFragment.java +++ b/src/com/android/dialer/list/BlockedListSearchFragment.java @@ -86,13 +86,9 @@ public class BlockedListSearchFragment extends RegularSearchFragment { private void blockNumber(final String number) { final String countryIso = GeoUtil.getCurrentCountryIso(getContext()); - final IndeterminateProgressDialog progressDialog = - IndeterminateProgressDialog.show(getFragmentManager(), - getString(R.string.checkingNumber, number), null, 500); final String normalizedNumber = FilteredNumberAsyncQueryHandler.getNormalizedNumber(number, countryIso); if (normalizedNumber == null) { - progressDialog.dismiss(); Toast.makeText(getContext(), getString(R.string.invalidNumber, number), Toast.LENGTH_SHORT).show(); return; @@ -100,12 +96,11 @@ public class BlockedListSearchFragment extends RegularSearchFragment { final OnCheckBlockedListener onCheckListener = new OnCheckBlockedListener() { @Override public void onCheckComplete(Integer id) { - progressDialog.dismiss(); if (id == null) { final FilterNumberDialogFragment newFragment = FilterNumberDialogFragment .newInstance(id, normalizedNumber, number, countryIso, number); newFragment.setParentView( - getActivity().findViewById(R.id.search_activity_container)); + getActivity().findViewById(R.id.blocked_numbers_activity_container)); newFragment.show( getFragmentManager(), FilterNumberDialogFragment.BLOCK_DIALOG_FRAGMENT); } else { @@ -118,9 +113,11 @@ public class BlockedListSearchFragment extends RegularSearchFragment { onCheckListener, normalizedNumber, number, countryIso); } - private void blockContactNumber(final BlockedListSearchAdapter adapter, - final ContactListItemView view, final String number, - final Integer blockId) { + private void blockContactNumber( + final BlockedListSearchAdapter adapter, + final ContactListItemView view, + final String number, + final Integer blockId) { final String countryIso = GeoUtil.getCurrentCountryIso(getContext()); final String normalizedNumber = FilteredNumberAsyncQueryHandler.getNormalizedNumber(number, countryIso); @@ -136,19 +133,8 @@ public class BlockedListSearchFragment extends RegularSearchFragment { } final FilterNumberDialogFragment newFragment = FilterNumberDialogFragment .newInstance(blockId, normalizedNumber, number, countryIso, number); - newFragment.setParentView(getActivity().findViewById(R.id.search_activity_container)); - newFragment.setOnUndoBlockListener(new FilterNumberDialogFragment.OnUndoBlockListener() { - @Override - public void onUndoBlockComplete() { - adapter.setViewUnblocked(view); - } - }); - newFragment.setOnBlockListener(new FilterNumberDialogFragment.OnBlockListener() { - @Override - public void onBlockComplete(Uri uri) { - adapter.setViewBlocked(view, Long.valueOf(ContentUris.parseId(uri)).intValue()); - } - }); + newFragment.setParentView( + getActivity().findViewById(R.id.blocked_numbers_activity_container)); newFragment.show(getFragmentManager(), FilterNumberDialogFragment.BLOCK_DIALOG_FRAGMENT); } } diff --git a/src/com/android/dialer/list/SearchFragment.java b/src/com/android/dialer/list/SearchFragment.java index 1c895d3af..c8711e769 100644 --- a/src/com/android/dialer/list/SearchFragment.java +++ b/src/com/android/dialer/list/SearchFragment.java @@ -289,12 +289,12 @@ public class SearchFragment extends PhoneNumberPickerFragment { public void updatePosition(boolean animate) { // Use negative shadow height instead of 0 to account for the 9-patch's shadow. int startTranslationValue = - mActivity.isDialpadShown() ? mActionBarHeight - mShadowHeight: -mShadowHeight; + mActivity.isDialpadShown() ? mActionBarHeight - mShadowHeight : -mShadowHeight; int endTranslationValue = 0; // Prevents ListView from being translated down after a rotation when the ActionBar is up. if (animate || mActivity.isActionBarShowing()) { endTranslationValue = - mActivity.isDialpadShown() ? 0 : mActionBarHeight -mShadowHeight; + mActivity.isDialpadShown() ? 0 : mActionBarHeight - mShadowHeight; } if (animate) { // If the dialpad will be shown, then this animation involves sliding the list up. diff --git a/src/com/android/dialer/settings/DialerSettingsActivity.java b/src/com/android/dialer/settings/DialerSettingsActivity.java index 58b0ab8e6..6fcd22195 100644 --- a/src/com/android/dialer/settings/DialerSettingsActivity.java +++ b/src/com/android/dialer/settings/DialerSettingsActivity.java @@ -28,7 +28,7 @@ import android.view.MenuItem; import android.widget.Toast; import com.android.dialer.R; -import com.android.dialer.filterednumber.BlockedNumberFragment; +import com.android.dialer.filterednumber.ManageBlockedNumbersActivity; import java.util.List; @@ -87,8 +87,8 @@ public class DialerSettingsActivity extends AppCompatPreferenceActivity { } Header blockedCallsHeader = new Header(); - blockedCallsHeader.titleRes = R.string.blocked_calls_settings_label; - blockedCallsHeader.fragment = BlockedNumberFragment.class.getName(); + blockedCallsHeader.titleRes = R.string.manage_blocked_numbers_label; + blockedCallsHeader.intent = new Intent(this, ManageBlockedNumbersActivity.class); target.add(blockedCallsHeader); if (telephonyManager.isTtyModeSupported() |