summaryrefslogtreecommitdiff
path: root/src/com/android/dialer
diff options
context:
space:
mode:
authorAndrew Lee <anwlee@google.com>2015-10-12 18:53:08 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2015-10-12 18:53:08 +0000
commitb34b9b34d3759c0b313d9fe08c8010a659807c62 (patch)
tree8de838ee252a50e8b6a75413f3cde49344f15466 /src/com/android/dialer
parentd156342c43389367c4528fb395fe3542bfe8d60e (diff)
parent3663afe2e1afb109e117e5b707e8ed9547ed2103 (diff)
Merge "Combine blocked number fragments into Activity." into ub-contactsdialer-a-dev
Diffstat (limited to 'src/com/android/dialer')
-rw-r--r--src/com/android/dialer/filterednumber/BlockedNumberFragment.java13
-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.java30
-rw-r--r--src/com/android/dialer/list/SearchFragment.java4
-rw-r--r--src/com/android/dialer/settings/DialerSettingsActivity.java6
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()