Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(4774)

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/preferences/privacy/ClearBrowsingDataTabsFragment.java

Issue 2646313005: Implement additional parts of the new ui for CBD. (Closed)
Patch Set: remove linearlayout Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/android/java/src/org/chromium/chrome/browser/preferences/privacy/ClearBrowsingDataTabsFragment.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/privacy/ClearBrowsingDataTabsFragment.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/privacy/ClearBrowsingDataTabsFragment.java
index cec1dc5ef39c4e72f7e70dae2ee6e9b16988d965..6fd0b20d4cbb998637375a53e0aa4ab9bf50f4ca 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/privacy/ClearBrowsingDataTabsFragment.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/privacy/ClearBrowsingDataTabsFragment.java
@@ -10,6 +10,8 @@ import android.content.Context;
import android.os.Bundle;
import android.support.design.widget.TabLayout;
import android.support.v13.app.FragmentPagerAdapter;
+import android.support.v4.text.TextUtilsCompat;
+import android.support.v4.view.ViewCompat;
import android.support.v4.view.ViewPager;
import android.view.LayoutInflater;
import android.view.View;
@@ -17,13 +19,16 @@ import android.view.ViewGroup;
import org.chromium.chrome.R;
import org.chromium.chrome.browser.ChromeFeatureList;
+import org.chromium.chrome.browser.preferences.PrefServiceBridge;
import org.chromium.chrome.browser.preferences.Preferences;
+import java.util.Locale;
+
/**
* Fragment with a {@link TabLayout} containing a basic and an advanced version of the CBD dialog.
*/
public class ClearBrowsingDataTabsFragment extends Fragment {
- public static final String TAG = ClearBrowsingDataTabsFragment.class.getSimpleName();
+ public static final int CBD_TAB_COUNT = 2;
public ClearBrowsingDataTabsFragment() {}
@@ -36,6 +41,21 @@ public class ClearBrowsingDataTabsFragment extends Fragment {
super.onCreate(savedInstanceState);
}
+ /*
+ * RTL is broken for ViewPager: https://code.google.com/p/android/issues/detail?id=56831
+ * This class works around this issue by inserting the tabs in inverse order if RTL is active.
+ * The TabLayout needs to be set to LTR for this to work.
+ * TODO(dullweber): Extract the RTL code into a wrapper class if other places in Chromium need
+ * it as well.
+ */
+ private static int adjustIndexForDirectionality(int index) {
+ if (TextUtilsCompat.getLayoutDirectionFromLocale(Locale.getDefault())
+ == ViewCompat.LAYOUT_DIRECTION_RTL) {
+ return CBD_TAB_COUNT - 1 - index;
+ }
+ return index;
+ }
+
@Override
public View onCreateView(
LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
@@ -50,6 +70,13 @@ public class ClearBrowsingDataTabsFragment extends Fragment {
// Give the TabLayout the ViewPager.
TabLayout tabLayout = (TabLayout) view.findViewById(R.id.clear_browsing_data_tabs);
tabLayout.setupWithViewPager(viewPager);
+ tabLayout.addOnTabSelectedListener(new TabSelectListener());
+ int tabIndex = adjustIndexForDirectionality(
+ PrefServiceBridge.getInstance().getLastSelectedClearBrowsingDataTab());
+ TabLayout.Tab tab = tabLayout.getTabAt(tabIndex);
+ if (tab != null) {
+ tab.select();
+ }
// Remove elevation to avoid shadow between title and tabs.
Preferences activity = (Preferences) getActivity();
@@ -68,11 +95,12 @@ public class ClearBrowsingDataTabsFragment extends Fragment {
@Override
public int getCount() {
- return 2;
+ return CBD_TAB_COUNT;
}
@Override
public Fragment getItem(int position) {
+ position = adjustIndexForDirectionality(position);
switch (position) {
case 0:
return new ClearBrowsingDataPreferencesBasic();
@@ -85,6 +113,7 @@ public class ClearBrowsingDataTabsFragment extends Fragment {
@Override
public CharSequence getPageTitle(int position) {
+ position = adjustIndexForDirectionality(position);
switch (position) {
case 0:
return mContext.getString(R.string.clear_browsing_data_basic_tab_title);
@@ -95,4 +124,18 @@ public class ClearBrowsingDataTabsFragment extends Fragment {
}
}
}
+
+ private static class TabSelectListener implements TabLayout.OnTabSelectedListener {
+ @Override
+ public void onTabSelected(TabLayout.Tab tab) {
+ int tabIndex = adjustIndexForDirectionality(tab.getPosition());
+ PrefServiceBridge.getInstance().setLastSelectedClearBrowsingDataTab(tabIndex);
+ }
+
+ @Override
+ public void onTabUnselected(TabLayout.Tab tab) {}
+
+ @Override
+ public void onTabReselected(TabLayout.Tab tab) {}
+ }
}

Powered by Google App Engine
This is Rietveld 408576698