Settings.java revision dac00547ce8d44a964e4510315168ee413e55a75
1/**
2 * Copyright (c) 2012, Google Inc.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 *     http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17package com.android.mail.providers;
18
19import android.database.Cursor;
20import android.net.Uri;
21import android.os.Parcel;
22import android.os.Parcelable;
23import android.text.TextUtils;
24
25/**
26 * Model to hold Settings for an account.
27 */
28public class Settings implements Parcelable {
29    public String signature;
30    public int autoAdvance;
31    public int messageTextSize;
32    public int snapHeaders;
33    public int replyBehavior;
34    public boolean hideCheckboxes;
35    public boolean confirmDelete;
36    public boolean confirmArchive;
37    public boolean confirmSend;
38    public Uri defaultInbox;
39
40    public Settings(Parcel inParcel) {
41        signature = inParcel.readString();
42        autoAdvance = inParcel.readInt();
43        messageTextSize = inParcel.readInt();
44        snapHeaders = inParcel.readInt();
45        replyBehavior = inParcel.readInt();
46        hideCheckboxes = inParcel.readInt() != 0;
47        confirmDelete = inParcel.readInt() != 0;
48        confirmArchive = inParcel.readInt() != 0;
49        confirmSend = inParcel.readInt() != 0;
50        final String inbox = inParcel.readString();
51        defaultInbox = !TextUtils.isEmpty(inbox) ? Uri.parse(inbox) : null;
52    }
53
54    public Settings(Cursor cursor) {
55        signature = cursor.getString(UIProvider.SETTINGS_SIGNATURE_COLUMN);
56        autoAdvance = cursor.getInt(UIProvider.SETTINGS_AUTO_ADVANCE_COLUMN);
57        messageTextSize = cursor.getInt(UIProvider.SETTINGS_MESSAGE_TEXT_SIZE_COLUMN);
58        snapHeaders = cursor.getInt(UIProvider.SETTINGS_SNAP_HEADERS_COLUMN);
59        replyBehavior = cursor.getInt(UIProvider.SETTINGS_REPLY_BEHAVIOR_COLUMN);
60        hideCheckboxes = cursor.getInt(UIProvider.SETTINGS_HIDE_CHECKBOXES_COLUMN) != 0;
61        confirmDelete = cursor.getInt(UIProvider.SETTINGS_CONFIRM_DELETE_COLUMN) != 0;
62        confirmArchive = cursor.getInt(UIProvider.SETTINGS_CONFIRM_ARCHIVE_COLUMN) != 0;
63        confirmSend = cursor.getInt(UIProvider.SETTINGS_CONFIRM_SEND_COLUMN) != 0;
64        final String inbox = cursor.getString(UIProvider.SETTINGS_DEFAULT_INBOX_COLUMN);
65        defaultInbox = !TextUtils.isEmpty(inbox) ? Uri.parse(inbox) : null;
66    }
67
68    @Override
69    public int describeContents() {
70        return 0;
71    }
72
73    @Override
74    public void writeToParcel(Parcel dest, int flags) {
75        dest.writeString(signature);
76        dest.writeInt(autoAdvance);
77        dest.writeInt(messageTextSize);
78        dest.writeInt(snapHeaders);
79        dest.writeInt(replyBehavior);
80        dest.writeInt(hideCheckboxes ? 1 : 0);
81        dest.writeInt(confirmDelete ? 1 : 0);
82        dest.writeInt(confirmArchive? 1 : 0);
83        dest.writeInt(confirmSend? 1 : 0);
84        dest.writeString(defaultInbox.toString());
85    }
86
87    @SuppressWarnings("hiding")
88    public static final Creator<Settings> CREATOR = new Creator<Settings>() {
89        @Override
90        public Settings createFromParcel(Parcel source) {
91            return new Settings(source);
92        }
93
94        @Override
95        public Settings[] newArray(int size) {
96            return new Settings[size];
97        }
98    };
99}
100