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

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

Issue 839663003: Upstream partner customizations. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fixed tests Created 5 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/HomepagePreferences.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/HomepagePreferences.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/HomepagePreferences.java
new file mode 100644
index 0000000000000000000000000000000000000000..d25b3b33acda64a05c1b79b98483457f41a880e2
--- /dev/null
+++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/HomepagePreferences.java
@@ -0,0 +1,151 @@
+// Copyright 2015 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package org.chromium.chrome.browser.preferences;
+
+import android.app.Fragment;
+import android.os.Bundle;
+import android.support.v7.widget.SwitchCompat;
+import android.text.Editable;
+import android.text.TextWatcher;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.View.OnFocusChangeListener;
+import android.view.ViewGroup;
+import android.widget.CheckBox;
+import android.widget.CompoundButton;
+import android.widget.CompoundButton.OnCheckedChangeListener;
+import android.widget.EditText;
+import android.widget.TextView;
+
+import org.chromium.chrome.R;
+import org.chromium.chrome.browser.UrlUtilities;
+import org.chromium.chrome.browser.partnercustomizations.HomepageManager;
+import org.chromium.chrome.browser.partnercustomizations.PartnerBrowserCustomizations;
+import org.chromium.ui.UiUtils;
+
+/**
+ * Fragment that allows the user to configure homepage related preferences.
+ */
+public class HomepagePreferences extends Fragment {
+ private HomepageManager mHomepageManager;
+ private SwitchCompat mHomepageSwitch;
+ private TextView mHomepageSwitchLabel;
+ private String mCustomUriCache;
+ private EditText mCustomUriEditText;
+ private CheckBox mPartnerDefaultCheckbox;
+
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ mHomepageManager = HomepageManager.getInstance(getActivity());
+ }
+
+ @Override
+ public void onActivityCreated(Bundle savedInstanceState) {
+ super.onActivityCreated(savedInstanceState);
+ getActivity().setTitle(R.string.options_homepage_title);
+ }
+
+ @Override
+ public View onCreateView(LayoutInflater inflater, ViewGroup container,
+ Bundle savedInstanceState) {
+ View rootView = inflater.inflate(R.layout.homepage_preferences, null);
+
+ initHomepageSwitch(rootView);
+ initCustomUriEditText(rootView);
+ initPartnerDefaultCheckbox(rootView);
+
+ updateUIState();
+
+ return rootView;
+ }
+
+ private void initHomepageSwitch(View rootView) {
+ mHomepageSwitch = (SwitchCompat) rootView.findViewById(R.id.homepage_switch);
+ mHomepageSwitchLabel = (TextView) rootView.findViewById(R.id.homepage_switch_label);
+
+ boolean isHomepageEnabled = mHomepageManager.getPrefHomepageEnabled();
+ mHomepageSwitch.setChecked(isHomepageEnabled);
+ setHomepageSwitchLabelText(isHomepageEnabled);
+
+ mHomepageSwitch.setOnCheckedChangeListener(new OnCheckedChangeListener(){
+ @Override
+ public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
+ mHomepageManager.setPrefHomepageEnabled(isChecked);
+ setHomepageSwitchLabelText(isChecked);
+ updateUIState();
+ }
+ });
+ }
+
+ private void setHomepageSwitchLabelText(boolean isChecked) {
+ if (isChecked) {
+ mHomepageSwitchLabel.setText(mHomepageSwitch.getTextOn());
+ } else {
+ mHomepageSwitchLabel.setText(mHomepageSwitch.getTextOff());
+ }
+ }
+
+ private void initCustomUriEditText(View rootView) {
+ mCustomUriCache = mHomepageManager.getPrefHomepageCustomUri();
+
+ mCustomUriEditText = (EditText) rootView.findViewById(R.id.custom_uri);
+ mCustomUriEditText.addTextChangedListener(new TextWatcher() {
+ @Override
+ public void onTextChanged(CharSequence s, int start, int before, int count) {
+ }
+
+ @Override
+ public void beforeTextChanged(CharSequence s, int start, int count, int after) {
+ }
+
+ @Override
+ public void afterTextChanged(Editable s) {
+ if (mCustomUriEditText.isEnabled()) {
+ mCustomUriCache = s.toString();
+ }
+ }
+ });
+ mCustomUriEditText.setOnFocusChangeListener(new OnFocusChangeListener() {
+ @Override
+ public void onFocusChange(View view, boolean hasFocus) {
+ if (!hasFocus) UiUtils.hideKeyboard(view);
+ }
+ });
+ }
+
+ private void initPartnerDefaultCheckbox(View rootView) {
+ mPartnerDefaultCheckbox = (CheckBox) rootView.findViewById(R.id.default_checkbox);
+ mPartnerDefaultCheckbox.setOnCheckedChangeListener(new OnCheckedChangeListener() {
+ @Override
+ public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
+ mHomepageManager.setPrefHomepageUseDefaultUri(isChecked);
+ updateUIState();
+ }
+ });
+ }
+
+ private void updateUIState() {
+ boolean isHomepageEnabled = mHomepageManager.getPrefHomepageEnabled();
+ boolean isHomepagePartnerEnabled =
+ mHomepageManager.getPrefHomepageUseDefaultUri();
+
+ mCustomUriEditText.setEnabled(false);
+ mCustomUriEditText.setText(isHomepagePartnerEnabled
+ ? PartnerBrowserCustomizations.getHomePageUrl() : mCustomUriCache);
+ mCustomUriEditText.setEnabled(isHomepageEnabled && !isHomepagePartnerEnabled);
+
+ mPartnerDefaultCheckbox.setChecked(isHomepagePartnerEnabled);
+ mPartnerDefaultCheckbox.setEnabled(isHomepageEnabled);
+ }
+
+ @Override
+ public void onStop() {
+ super.onStop();
+ mHomepageManager.setPrefHomepageCustomUri(
+ UrlUtilities.fixUrl(UrlUtilities.fixupUrl(mCustomUriCache)));
+ }
+
+}

Powered by Google App Engine
This is Rietveld 408576698