Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
64536a3
General section if Site Settings added. Using REST API to pull site info
tonyr59h Jun 24, 2015
02c99d7
Updating API interface to access title field.
tonyr59h Jun 29, 2015
03a4ee9
Smoothing SeekBarPreferenceAnimation and clamping.
tonyr59h Jul 1, 2015
90f6fb0
Updating Title, Tagline, and Visibility after prompting user to sync.
tonyr59h Jul 2, 2015
a39a4b8
Replaced alert dialog with a Save menu option to save changes.
tonyr59h Jul 2, 2015
6613fa8
Notifying of changes to SeekBarPreference value.
tonyr59h Jul 2, 2015
7db4e62
SeekBarPreference can handle arbitrary number of discrete points.
tonyr59h Jul 2, 2015
c192c59
Merge branch 'develop' into feature/2886-general-site-settings
tonyr59h Jul 8, 2015
6f0d04a
Adding remaining preferences, updating design.
tonyr59h Jul 10, 2015
e5abc59
Removing unused Preferences.
tonyr59h Jul 10, 2015
a89a9be
Merge branch 'develop' into feature/2886-general-site-settings
tonyr59h Jul 10, 2015
9e928a0
Saving only changed settings, using resources for language.
tonyr59h Jul 11, 2015
1b21ba4
Updating ActionBar title. Save button is now Undo.
tonyr59h Jul 14, 2015
c41a8a1
Disabling Address field until it's implemented. Fixing initial summar…
tonyr59h Jul 14, 2015
731c899
Merge branch 'develop' into feature/2886-general-site-settings
tonyr59h Jul 14, 2015
1b142d9
Removing unused layout.
tonyr59h Jul 14, 2015
f3c555f
Addressing code review. Closing Activity on settings fetch error.
tonyr59h Jul 15, 2015
4df1aed
Fixing build!
tonyr59h Jul 15, 2015
08712ef
Removing Undo button.
tonyr59h Jul 15, 2015
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,34 +1,17 @@
package org.wordpress.android.ui.prefs;

import android.app.AlertDialog;
import android.content.DialogInterface;
import android.app.Fragment;
import android.os.Bundle;
import android.support.v7.app.ActionBar;
import android.support.v7.app.AppCompatActivity;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;

import org.wordpress.android.R;
import org.wordpress.android.WordPress;
import org.wordpress.android.models.AccountHelper;
import org.wordpress.android.models.Blog;
import org.wordpress.android.ui.ActivityLauncher;
import org.wordpress.android.ui.stats.datasets.StatsTable;
import org.wordpress.android.util.AnalyticsUtils;
import org.wordpress.android.util.CoreEvents.UserSignedOutCompletely;
import org.wordpress.android.util.StringUtils;
import org.wordpress.android.util.ToastUtils;

import de.greenrobot.event.EventBus;

/**
* Activity for configuring blog specific settings.
Expand All @@ -39,20 +22,10 @@ public class BlogPreferencesActivity extends AppCompatActivity {

// The blog this activity is managing settings for.
private Blog blog;
private boolean mBlogDeleted;
private EditText mUsernameET;
private EditText mPasswordET;
private EditText mHttpUsernameET;
private EditText mHttpPasswordET;
private CheckBox mFullSizeCB;
private CheckBox mScaledCB;
private Spinner mImageWidthSpinner;
private EditText mScaledImageWidthET;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.blog_preferences);

Integer id = getIntent().getIntExtra(ARG_LOCAL_BLOG_ID, -1);
blog = WordPress.getBlog(id);
Expand All @@ -63,39 +36,28 @@ public void onCreate(Bundle savedInstanceState) {
return;
}

Fragment siteSettingsFragment = new SiteSettingsFragment();
siteSettingsFragment.setArguments(getIntent().getExtras());
getFragmentManager().beginTransaction()
.replace(android.R.id.content, siteSettingsFragment)
.commit();

ActionBar actionBar = getSupportActionBar();
if (actionBar != null) {
actionBar.setElevation(0.0f);
actionBar.setTitle(StringUtils.unescapeHTML(blog.getNameOrHostUrl()));
actionBar.setDisplayHomeAsUpEnabled(true);
}
}

mUsernameET = (EditText) findViewById(R.id.username);
mPasswordET = (EditText) findViewById(R.id.password);
mHttpUsernameET = (EditText) findViewById(R.id.httpuser);
mHttpPasswordET = (EditText) findViewById(R.id.httppassword);
mScaledImageWidthET = (EditText) findViewById(R.id.scaledImageWidth);
mFullSizeCB = (CheckBox) findViewById(R.id.fullSizeImage);
mScaledCB = (CheckBox) findViewById(R.id.scaledImage);
mImageWidthSpinner = (Spinner) findViewById(R.id.maxImageWidth);
Button removeBlogButton = (Button) findViewById(R.id.remove_account);
@Override
public void setTitle(CharSequence title) {
super.setTitle(title);

// remove blog & credentials apply only to dot org
if (blog.isDotcomFlag()) {
View credentialsRL = findViewById(R.id.sectionContent);
credentialsRL.setVisibility(View.GONE);
removeBlogButton.setVisibility(View.GONE);
} else {
removeBlogButton.setVisibility(View.VISIBLE);
removeBlogButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
removeBlogWithConfirmation();
}
});
ActionBar actionBar = getSupportActionBar();
if (actionBar != null) {
actionBar.setTitle(title);
}

loadSettingsForBlog();
}

@Override
Expand All @@ -108,50 +70,6 @@ public void finish() {
protected void onPause() {
super.onPause();

if (mBlogDeleted) {
return;
}

blog.setUsername(mUsernameET.getText().toString());
blog.setPassword(mPasswordET.getText().toString());
blog.setHttpuser(mHttpUsernameET.getText().toString());
blog.setHttppassword(mHttpPasswordET.getText().toString());

blog.setFullSizeImage(mFullSizeCB.isChecked());
blog.setScaledImage(mScaledCB.isChecked());
if (blog.isScaledImage()) {
EditText scaledImgWidth = (EditText) findViewById(R.id.scaledImageWidth);

boolean error = false;
int width = 0;
try {
width = Integer.parseInt(scaledImgWidth.getText().toString().trim());
} catch (NumberFormatException e) {
error = true;
}

if (width == 0) {
error = true;
}

if (error) {
AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(BlogPreferencesActivity.this);
dialogBuilder.setTitle(getResources().getText(R.string.error));
dialogBuilder.setMessage(getResources().getText(R.string.scaled_image_error));
dialogBuilder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
}
});
dialogBuilder.setCancelable(true);
dialogBuilder.create().show();
return;
} else {
blog.setScaledImageWidth(width);
}
}

blog.setMaxImageWidth(mImageWidthSpinner.getSelectedItem().toString());

WordPress.wpDB.saveBlog(blog);

if (WordPress.getCurrentBlog().getLocalTableBlogId() == blog.getLocalTableBlogId()) {
Expand All @@ -169,135 +87,4 @@ public boolean onOptionsItemSelected(MenuItem item) {

return super.onOptionsItemSelected(item);
}

private void loadSettingsForBlog() {
ArrayAdapter<Object> spinnerArrayAdapter = new ArrayAdapter<Object>(this,
R.layout.simple_spinner_item, new String[]{
"Original Size", "100", "200", "300", "400", "500", "600", "700", "800",
"900", "1000", "1100", "1200", "1300", "1400", "1500", "1600", "1700",
"1800", "1900", "2000"
});
spinnerArrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
mImageWidthSpinner.setAdapter(spinnerArrayAdapter);
mImageWidthSpinner.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
CheckBox fullSizeImageCheckBox = (CheckBox) findViewById(R.id.fullSizeImage);
// Original size selected. Do not show the link to full image.
if (id == 0) {
fullSizeImageCheckBox.setVisibility(View.GONE);
} else {
fullSizeImageCheckBox.setVisibility(View.VISIBLE);
}
}

@Override
public void onNothingSelected(AdapterView<?> arg0) {
}
});

mUsernameET.setText(blog.getUsername());
mPasswordET.setText(blog.getPassword());
mHttpUsernameET.setText(blog.getHttpuser());
mHttpPasswordET.setText(blog.getHttppassword());
TextView httpUserLabel = (TextView) findViewById(R.id.l_httpuser);
if (blog.isDotcomFlag()) {
mHttpUsernameET.setVisibility(View.GONE);
mHttpPasswordET.setVisibility(View.GONE);
httpUserLabel.setVisibility(View.GONE);
} else {
mHttpUsernameET.setVisibility(View.VISIBLE);
mHttpPasswordET.setVisibility(View.VISIBLE);
httpUserLabel.setVisibility(View.VISIBLE);
}

mFullSizeCB.setChecked(blog.isFullSizeImage());
mScaledCB.setChecked(blog.isScaledImage());

this.mScaledImageWidthET.setText("" + blog.getScaledImageWidth());
showScaledSetting(blog.isScaledImage());

CheckBox scaledImage = (CheckBox) findViewById(R.id.scaledImage);
scaledImage.setChecked(false);
scaledImage.setVisibility(View.GONE);

// sets up a state listener for the full-size checkbox
CheckBox fullSizeImageCheckBox = (CheckBox) findViewById(R.id.fullSizeImage);
fullSizeImageCheckBox.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
CheckBox fullSize = (CheckBox) findViewById(R.id.fullSizeImage);
if (fullSize.isChecked()) {
CheckBox scaledImage = (CheckBox) findViewById(R.id.scaledImage);
if (scaledImage.isChecked()) {
scaledImage.setChecked(false);
showScaledSetting(false);
}
}
}
});

int imageWidthPosition = spinnerArrayAdapter.getPosition(blog.getMaxImageWidth());
mImageWidthSpinner.setSelection((imageWidthPosition >= 0) ? imageWidthPosition : 0);
if (mImageWidthSpinner.getSelectedItemPosition() ==
0) //Original size selected. Do not show the link to full image.
{
fullSizeImageCheckBox.setVisibility(View.GONE);
} else {
fullSizeImageCheckBox.setVisibility(View.VISIBLE);
}
}

/**
* Hides / shows the scaled image settings
*/
private void showScaledSetting(boolean show) {
TextView tw = (TextView) findViewById(R.id.l_scaledImage);
EditText et = (EditText) findViewById(R.id.scaledImageWidth);
tw.setVisibility(show ? View.VISIBLE : View.GONE);
et.setVisibility(show ? View.VISIBLE : View.GONE);
}

/**
* Remove the blog this activity is managing settings for.
*/
private void removeBlogWithConfirmation() {
AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(this);
dialogBuilder.setTitle(getResources().getText(R.string.remove_account));
dialogBuilder.setMessage(getResources().getText(R.string.sure_to_remove_account));
dialogBuilder.setPositiveButton(getResources().getText(R.string.yes), new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
removeBlog();
}
});
dialogBuilder.setNegativeButton(getResources().getText(R.string.no), null);
dialogBuilder.setCancelable(false);
dialogBuilder.create().show();
}

private void removeBlog() {
if (WordPress.wpDB.deleteBlog(this, blog.getLocalTableBlogId())) {
StatsTable.deleteStatsForBlog(this,blog.getLocalTableBlogId()); // Remove stats data
AnalyticsUtils.refreshMetadata();
ToastUtils.showToast(this, R.string.blog_removed_successfully);
WordPress.wpDB.deleteLastBlogId();
WordPress.currentBlog = null;
mBlogDeleted = true;
setResult(RESULT_BLOG_REMOVED);

// If the last blog is removed and the user is not signed in wpcom, broadcast a UserSignedOut event
if (!AccountHelper.isSignedIn()) {
EventBus.getDefault().post(new UserSignedOutCompletely());
}

finish();
} else {
AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(this);
dialogBuilder.setTitle(getResources().getText(R.string.error));
dialogBuilder.setMessage(getResources().getText(R.string.could_not_remove_account));
dialogBuilder.setPositiveButton("OK", null);
dialogBuilder.setCancelable(true);
dialogBuilder.create().show();
}
}
}
Loading