mirror of https://github.com/M66B/FairEmail.git
Revise account layout
This commit is contained in:
parent
7590a6ffae
commit
b5b805672d
|
@ -43,9 +43,9 @@ public class EntityAccount {
|
||||||
|
|
||||||
@PrimaryKey(autoGenerate = true)
|
@PrimaryKey(autoGenerate = true)
|
||||||
public Long id;
|
public Long id;
|
||||||
public String name;
|
|
||||||
public String signature; // obsolete
|
@NonNull
|
||||||
public String prefix; // namespace
|
public Integer auth_type;
|
||||||
@NonNull
|
@NonNull
|
||||||
public String host; // IMAP
|
public String host; // IMAP
|
||||||
@NonNull
|
@NonNull
|
||||||
|
@ -58,19 +58,23 @@ public class EntityAccount {
|
||||||
public String user;
|
public String user;
|
||||||
@NonNull
|
@NonNull
|
||||||
public String password;
|
public String password;
|
||||||
@NonNull
|
|
||||||
public Integer auth_type;
|
public String name;
|
||||||
|
public String signature; // obsolete
|
||||||
|
public Integer color;
|
||||||
|
|
||||||
@NonNull
|
@NonNull
|
||||||
public Boolean synchronize;
|
public Boolean synchronize;
|
||||||
@NonNull
|
@NonNull
|
||||||
public Boolean primary;
|
public Boolean primary;
|
||||||
@NonNull
|
@NonNull
|
||||||
public Boolean browse;
|
|
||||||
public Integer color;
|
|
||||||
@NonNull
|
|
||||||
public Boolean notify;
|
public Boolean notify;
|
||||||
@NonNull
|
@NonNull
|
||||||
|
public Boolean browse;
|
||||||
|
@NonNull
|
||||||
public Integer poll_interval; // keep-alive interval
|
public Integer poll_interval; // keep-alive interval
|
||||||
|
public String prefix; // namespace
|
||||||
|
|
||||||
public Long created;
|
public Long created;
|
||||||
public Boolean tbd;
|
public Boolean tbd;
|
||||||
public String state;
|
public String state;
|
||||||
|
|
|
@ -95,6 +95,7 @@ public class FragmentAccount extends FragmentEx {
|
||||||
private EditText etDomain;
|
private EditText etDomain;
|
||||||
private Button btnAutoConfig;
|
private Button btnAutoConfig;
|
||||||
|
|
||||||
|
private Button btnAuthorize;
|
||||||
private EditText etHost;
|
private EditText etHost;
|
||||||
private CheckBox cbStartTls;
|
private CheckBox cbStartTls;
|
||||||
private CheckBox cbInsecure;
|
private CheckBox cbInsecure;
|
||||||
|
@ -102,26 +103,22 @@ public class FragmentAccount extends FragmentEx {
|
||||||
private EditText etUser;
|
private EditText etUser;
|
||||||
private TextInputLayout tilPassword;
|
private TextInputLayout tilPassword;
|
||||||
|
|
||||||
private Button btnAuthorize;
|
|
||||||
|
|
||||||
private Button btnAdvanced;
|
|
||||||
|
|
||||||
private TextView tvName;
|
private TextView tvName;
|
||||||
private EditText etName;
|
private EditText etName;
|
||||||
private EditText etPrefix;
|
|
||||||
private Button btnColor;
|
private Button btnColor;
|
||||||
private View vwColor;
|
private View vwColor;
|
||||||
private ImageView ibColorDefault;
|
private ImageView ibColorDefault;
|
||||||
private CheckBox cbNotify;
|
|
||||||
|
|
||||||
|
private Button btnAdvanced;
|
||||||
private CheckBox cbSynchronize;
|
private CheckBox cbSynchronize;
|
||||||
private CheckBox cbPrimary;
|
private CheckBox cbPrimary;
|
||||||
|
private CheckBox cbNotify;
|
||||||
private CheckBox cbBrowse;
|
private CheckBox cbBrowse;
|
||||||
private EditText etInterval;
|
private EditText etInterval;
|
||||||
|
private EditText etPrefix;
|
||||||
|
|
||||||
private Button btnCheck;
|
private Button btnCheck;
|
||||||
private ProgressBar pbCheck;
|
private ProgressBar pbCheck;
|
||||||
|
|
||||||
private TextView tvIdle;
|
private TextView tvIdle;
|
||||||
|
|
||||||
private ArrayAdapter<EntityFolder> adapter;
|
private ArrayAdapter<EntityFolder> adapter;
|
||||||
|
@ -170,6 +167,7 @@ public class FragmentAccount extends FragmentEx {
|
||||||
etDomain = view.findViewById(R.id.etDomain);
|
etDomain = view.findViewById(R.id.etDomain);
|
||||||
btnAutoConfig = view.findViewById(R.id.btnAutoConfig);
|
btnAutoConfig = view.findViewById(R.id.btnAutoConfig);
|
||||||
|
|
||||||
|
btnAuthorize = view.findViewById(R.id.btnAuthorize);
|
||||||
etHost = view.findViewById(R.id.etHost);
|
etHost = view.findViewById(R.id.etHost);
|
||||||
etPort = view.findViewById(R.id.etPort);
|
etPort = view.findViewById(R.id.etPort);
|
||||||
cbStartTls = view.findViewById(R.id.cbStartTls);
|
cbStartTls = view.findViewById(R.id.cbStartTls);
|
||||||
|
@ -177,22 +175,19 @@ public class FragmentAccount extends FragmentEx {
|
||||||
etUser = view.findViewById(R.id.etUser);
|
etUser = view.findViewById(R.id.etUser);
|
||||||
tilPassword = view.findViewById(R.id.tilPassword);
|
tilPassword = view.findViewById(R.id.tilPassword);
|
||||||
|
|
||||||
btnAuthorize = view.findViewById(R.id.btnAuthorize);
|
|
||||||
|
|
||||||
btnAdvanced = view.findViewById(R.id.btnAdvanced);
|
|
||||||
|
|
||||||
etName = view.findViewById(R.id.etName);
|
etName = view.findViewById(R.id.etName);
|
||||||
tvName = view.findViewById(R.id.tvName);
|
tvName = view.findViewById(R.id.tvName);
|
||||||
etPrefix = view.findViewById(R.id.etPrefix);
|
|
||||||
btnColor = view.findViewById(R.id.btnColor);
|
btnColor = view.findViewById(R.id.btnColor);
|
||||||
vwColor = view.findViewById(R.id.vwColor);
|
vwColor = view.findViewById(R.id.vwColor);
|
||||||
ibColorDefault = view.findViewById(R.id.ibColorDefault);
|
ibColorDefault = view.findViewById(R.id.ibColorDefault);
|
||||||
cbNotify = view.findViewById(R.id.cbNotify);
|
|
||||||
|
|
||||||
|
btnAdvanced = view.findViewById(R.id.btnAdvanced);
|
||||||
cbSynchronize = view.findViewById(R.id.cbSynchronize);
|
cbSynchronize = view.findViewById(R.id.cbSynchronize);
|
||||||
cbPrimary = view.findViewById(R.id.cbPrimary);
|
cbPrimary = view.findViewById(R.id.cbPrimary);
|
||||||
|
cbNotify = view.findViewById(R.id.cbNotify);
|
||||||
cbBrowse = view.findViewById(R.id.cbBrowse);
|
cbBrowse = view.findViewById(R.id.cbBrowse);
|
||||||
etInterval = view.findViewById(R.id.etInterval);
|
etInterval = view.findViewById(R.id.etInterval);
|
||||||
|
etPrefix = view.findViewById(R.id.etPrefix);
|
||||||
|
|
||||||
btnCheck = view.findViewById(R.id.btnCheck);
|
btnCheck = view.findViewById(R.id.btnCheck);
|
||||||
pbCheck = view.findViewById(R.id.pbCheck);
|
pbCheck = view.findViewById(R.id.pbCheck);
|
||||||
|
@ -259,6 +254,23 @@ public class FragmentAccount extends FragmentEx {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
etDomain.addTextChangedListener(new TextWatcher() {
|
||||||
|
@Override
|
||||||
|
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onTextChanged(CharSequence text, int start, int before, int count) {
|
||||||
|
btnAutoConfig.setEnabled(text.length() > 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void afterTextChanged(Editable s) {
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
btnAutoConfig.setEnabled(false);
|
||||||
|
|
||||||
btnAutoConfig.setOnClickListener(new View.OnClickListener() {
|
btnAutoConfig.setOnClickListener(new View.OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View v) {
|
public void onClick(View v) {
|
||||||
|
@ -271,8 +283,10 @@ public class FragmentAccount extends FragmentEx {
|
||||||
new SimpleTask<SRVRecord>() {
|
new SimpleTask<SRVRecord>() {
|
||||||
@Override
|
@Override
|
||||||
protected SRVRecord onLoad(Context context, Bundle args) throws Throwable {
|
protected SRVRecord onLoad(Context context, Bundle args) throws Throwable {
|
||||||
String domain = args.getString("domain");
|
String dns = "_imaps._tcp." + args.getString("domain");
|
||||||
Record[] records = new Lookup("_imaps._tcp." + domain, Type.SRV).run();
|
Log.i("Lookup dns=" + dns);
|
||||||
|
Record[] records = new Lookup(dns, Type.SRV).run();
|
||||||
|
Log.i("Found dns=" + (records == null ? -1 : records.length));
|
||||||
if (records != null)
|
if (records != null)
|
||||||
for (int i = 0; i < records.length; i++) {
|
for (int i = 0; i < records.length; i++) {
|
||||||
SRVRecord srv = (SRVRecord) records[i];
|
SRVRecord srv = (SRVRecord) records[i];
|
||||||
|
@ -330,39 +344,6 @@ public class FragmentAccount extends FragmentEx {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
btnAuthorize.setOnClickListener(new View.OnClickListener() {
|
|
||||||
@Override
|
|
||||||
public void onClick(View v) {
|
|
||||||
Provider provider = (Provider) spProvider.getSelectedItem();
|
|
||||||
Log.i("Authorize " + provider);
|
|
||||||
|
|
||||||
if ("com.google".equals(provider.type)) {
|
|
||||||
String permission = Manifest.permission.GET_ACCOUNTS;
|
|
||||||
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O &&
|
|
||||||
ContextCompat.checkSelfPermission(getContext(), permission) != PackageManager.PERMISSION_GRANTED) {
|
|
||||||
Log.i("Requesting " + permission);
|
|
||||||
requestPermissions(new String[]{permission}, ActivitySetup.REQUEST_PERMISSION);
|
|
||||||
} else
|
|
||||||
selectAccount();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
btnAdvanced.setOnClickListener(new View.OnClickListener() {
|
|
||||||
@Override
|
|
||||||
public void onClick(View v) {
|
|
||||||
int visibility = (grpAdvanced.getVisibility() == View.VISIBLE ? View.GONE : View.VISIBLE);
|
|
||||||
grpAdvanced.setVisibility(visibility);
|
|
||||||
if (visibility == View.VISIBLE)
|
|
||||||
new Handler().post(new Runnable() {
|
|
||||||
@Override
|
|
||||||
public void run() {
|
|
||||||
((ScrollView) view).smoothScrollTo(0, tvName.getTop());
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
vwColor.setBackgroundColor(color);
|
vwColor.setBackgroundColor(color);
|
||||||
btnColor.setOnClickListener(new View.OnClickListener() {
|
btnColor.setOnClickListener(new View.OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
|
@ -394,6 +375,46 @@ public class FragmentAccount extends FragmentEx {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
btnAuthorize.setOnClickListener(new View.OnClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onClick(View v) {
|
||||||
|
Provider provider = (Provider) spProvider.getSelectedItem();
|
||||||
|
Log.i("Authorize " + provider);
|
||||||
|
|
||||||
|
if ("com.google".equals(provider.type)) {
|
||||||
|
String permission = Manifest.permission.GET_ACCOUNTS;
|
||||||
|
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O &&
|
||||||
|
ContextCompat.checkSelfPermission(getContext(), permission) != PackageManager.PERMISSION_GRANTED) {
|
||||||
|
Log.i("Requesting " + permission);
|
||||||
|
requestPermissions(new String[]{permission}, ActivitySetup.REQUEST_PERMISSION);
|
||||||
|
} else
|
||||||
|
selectAccount();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
btnAdvanced.setOnClickListener(new View.OnClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onClick(View v) {
|
||||||
|
int visibility = (grpAdvanced.getVisibility() == View.VISIBLE ? View.GONE : View.VISIBLE);
|
||||||
|
grpAdvanced.setVisibility(visibility);
|
||||||
|
if (visibility == View.VISIBLE)
|
||||||
|
new Handler().post(new Runnable() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
((ScrollView) view).smoothScrollTo(0, cbPrimary.getTop());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
cbSynchronize.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
|
||||||
|
@Override
|
||||||
|
public void onCheckedChanged(CompoundButton compoundButton, boolean checked) {
|
||||||
|
cbPrimary.setEnabled(checked);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
cbNotify.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
|
cbNotify.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
|
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
|
||||||
|
@ -408,13 +429,6 @@ public class FragmentAccount extends FragmentEx {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
cbSynchronize.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
|
|
||||||
@Override
|
|
||||||
public void onCheckedChanged(CompoundButton compoundButton, boolean checked) {
|
|
||||||
cbPrimary.setEnabled(checked);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
btnCheck.setOnClickListener(new View.OnClickListener() {
|
btnCheck.setOnClickListener(new View.OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View v) {
|
public void onClick(View v) {
|
||||||
|
@ -594,23 +608,24 @@ public class FragmentAccount extends FragmentEx {
|
||||||
|
|
||||||
Bundle args = new Bundle();
|
Bundle args = new Bundle();
|
||||||
args.putLong("id", id);
|
args.putLong("id", id);
|
||||||
|
|
||||||
|
args.putInt("auth_type", authorized == null ? Helper.AUTH_TYPE_PASSWORD : provider.getAuthType());
|
||||||
args.putString("host", etHost.getText().toString());
|
args.putString("host", etHost.getText().toString());
|
||||||
args.putBoolean("starttls", cbStartTls.isChecked());
|
args.putBoolean("starttls", cbStartTls.isChecked());
|
||||||
args.putBoolean("insecure", cbInsecure.isChecked());
|
args.putBoolean("insecure", cbInsecure.isChecked());
|
||||||
args.putString("port", etPort.getText().toString());
|
args.putString("port", etPort.getText().toString());
|
||||||
args.putString("user", etUser.getText().toString());
|
args.putString("user", etUser.getText().toString());
|
||||||
args.putString("password", tilPassword.getEditText().getText().toString());
|
args.putString("password", tilPassword.getEditText().getText().toString());
|
||||||
args.putInt("auth_type", authorized == null ? Helper.AUTH_TYPE_PASSWORD : provider.getAuthType());
|
|
||||||
|
|
||||||
args.putString("name", etName.getText().toString());
|
args.putString("name", etName.getText().toString());
|
||||||
args.putString("prefix", etPrefix.getText().toString());
|
|
||||||
args.putInt("color", color);
|
args.putInt("color", color);
|
||||||
args.putBoolean("notify", cbNotify.isChecked());
|
|
||||||
|
|
||||||
args.putBoolean("synchronize", cbSynchronize.isChecked());
|
args.putBoolean("synchronize", cbSynchronize.isChecked());
|
||||||
args.putBoolean("primary", cbPrimary.isChecked());
|
args.putBoolean("primary", cbPrimary.isChecked());
|
||||||
|
args.putBoolean("notify", cbNotify.isChecked());
|
||||||
args.putBoolean("browse", cbBrowse.isChecked());
|
args.putBoolean("browse", cbBrowse.isChecked());
|
||||||
args.putString("interval", etInterval.getText().toString());
|
args.putString("interval", etInterval.getText().toString());
|
||||||
|
args.putString("prefix", etPrefix.getText().toString());
|
||||||
|
|
||||||
args.putSerializable("drafts", drafts);
|
args.putSerializable("drafts", drafts);
|
||||||
args.putSerializable("sent", sent);
|
args.putSerializable("sent", sent);
|
||||||
|
@ -622,23 +637,24 @@ public class FragmentAccount extends FragmentEx {
|
||||||
@Override
|
@Override
|
||||||
protected Void onLoad(Context context, Bundle args) throws Throwable {
|
protected Void onLoad(Context context, Bundle args) throws Throwable {
|
||||||
long id = args.getLong("id");
|
long id = args.getLong("id");
|
||||||
|
|
||||||
|
int auth_type = args.getInt("auth_type");
|
||||||
String host = args.getString("host");
|
String host = args.getString("host");
|
||||||
boolean starttls = args.getBoolean("starttls");
|
boolean starttls = args.getBoolean("starttls");
|
||||||
boolean insecure = args.getBoolean("insecure");
|
boolean insecure = args.getBoolean("insecure");
|
||||||
String port = args.getString("port");
|
String port = args.getString("port");
|
||||||
String user = args.getString("user");
|
String user = args.getString("user");
|
||||||
String password = args.getString("password");
|
String password = args.getString("password");
|
||||||
int auth_type = args.getInt("auth_type");
|
|
||||||
|
|
||||||
String name = args.getString("name");
|
String name = args.getString("name");
|
||||||
String prefix = args.getString("prefix");
|
|
||||||
Integer color = args.getInt("color");
|
Integer color = args.getInt("color");
|
||||||
boolean notify = args.getBoolean("notify");
|
|
||||||
|
|
||||||
boolean synchronize = args.getBoolean("synchronize");
|
boolean synchronize = args.getBoolean("synchronize");
|
||||||
boolean primary = args.getBoolean("primary");
|
boolean primary = args.getBoolean("primary");
|
||||||
|
boolean notify = args.getBoolean("notify");
|
||||||
boolean browse = args.getBoolean("browse");
|
boolean browse = args.getBoolean("browse");
|
||||||
String interval = args.getString("interval");
|
String interval = args.getString("interval");
|
||||||
|
String prefix = args.getString("prefix");
|
||||||
|
|
||||||
EntityFolder drafts = (EntityFolder) args.getSerializable("drafts");
|
EntityFolder drafts = (EntityFolder) args.getSerializable("drafts");
|
||||||
EntityFolder sent = (EntityFolder) args.getSerializable("sent");
|
EntityFolder sent = (EntityFolder) args.getSerializable("sent");
|
||||||
|
@ -659,10 +675,10 @@ public class FragmentAccount extends FragmentEx {
|
||||||
if (synchronize && drafts == null)
|
if (synchronize && drafts == null)
|
||||||
throw new Throwable(context.getString(R.string.title_no_drafts));
|
throw new Throwable(context.getString(R.string.title_no_drafts));
|
||||||
|
|
||||||
if (TextUtils.isEmpty(prefix))
|
|
||||||
prefix = null;
|
|
||||||
if (Color.TRANSPARENT == color)
|
if (Color.TRANSPARENT == color)
|
||||||
color = null;
|
color = null;
|
||||||
|
if (TextUtils.isEmpty(prefix))
|
||||||
|
prefix = null;
|
||||||
|
|
||||||
long now = new Date().getTime();
|
long now = new Date().getTime();
|
||||||
Character separator = null;
|
Character separator = null;
|
||||||
|
@ -713,23 +729,23 @@ public class FragmentAccount extends FragmentEx {
|
||||||
if (account == null)
|
if (account == null)
|
||||||
account = new EntityAccount();
|
account = new EntityAccount();
|
||||||
|
|
||||||
|
account.auth_type = auth_type;
|
||||||
account.host = host;
|
account.host = host;
|
||||||
account.starttls = starttls;
|
account.starttls = starttls;
|
||||||
account.insecure = insecure;
|
account.insecure = insecure;
|
||||||
account.port = Integer.parseInt(port);
|
account.port = Integer.parseInt(port);
|
||||||
account.user = user;
|
account.user = user;
|
||||||
account.password = password;
|
account.password = password;
|
||||||
account.auth_type = auth_type;
|
|
||||||
|
|
||||||
account.name = name;
|
account.name = name;
|
||||||
account.prefix = prefix;
|
|
||||||
account.color = color;
|
account.color = color;
|
||||||
account.notify = notify;
|
|
||||||
|
|
||||||
account.synchronize = synchronize;
|
account.synchronize = synchronize;
|
||||||
account.primary = (account.synchronize && primary);
|
account.primary = (account.synchronize && primary);
|
||||||
|
account.notify = notify;
|
||||||
account.browse = browse;
|
account.browse = browse;
|
||||||
account.poll_interval = Integer.parseInt(interval);
|
account.poll_interval = Integer.parseInt(interval);
|
||||||
|
account.prefix = prefix;
|
||||||
|
|
||||||
if (!update)
|
if (!update)
|
||||||
account.created = now;
|
account.created = now;
|
||||||
|
|
|
@ -212,18 +212,6 @@
|
||||||
android:inputType="textPassword" />
|
android:inputType="textPassword" />
|
||||||
</com.google.android.material.textfield.TextInputLayout>
|
</com.google.android.material.textfield.TextInputLayout>
|
||||||
|
|
||||||
<Button
|
|
||||||
android:id="@+id/btnAdvanced"
|
|
||||||
style="@style/buttonStyleSmall"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_marginTop="12dp"
|
|
||||||
android:minWidth="0dp"
|
|
||||||
android:minHeight="0dp"
|
|
||||||
android:text="@string/title_setup_advanced"
|
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
|
||||||
app:layout_constraintTop_toBottomOf="@id/tilPassword" />
|
|
||||||
|
|
||||||
<!-- name -->
|
<!-- name -->
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
|
@ -234,7 +222,7 @@
|
||||||
android:text="@string/title_account_name"
|
android:text="@string/title_account_name"
|
||||||
android:textAppearance="@style/TextAppearance.AppCompat.Small"
|
android:textAppearance="@style/TextAppearance.AppCompat.Small"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toBottomOf="@id/btnAdvanced" />
|
app:layout_constraintTop_toBottomOf="@id/tilPassword" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/tvNameRemark"
|
android:id="@+id/tvNameRemark"
|
||||||
|
@ -257,37 +245,6 @@
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toBottomOf="@id/tvNameRemark" />
|
app:layout_constraintTop_toBottomOf="@id/tvNameRemark" />
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:id="@+id/tvPrefix"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_marginTop="12dp"
|
|
||||||
android:text="@string/title_account_prefix"
|
|
||||||
android:textAppearance="@style/TextAppearance.AppCompat.Small"
|
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
|
||||||
app:layout_constraintTop_toBottomOf="@id/etName" />
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:id="@+id/tvPrefixRemark"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_marginTop="6dp"
|
|
||||||
android:text="@string/title_account_prefix_hint"
|
|
||||||
android:textAppearance="@style/TextAppearance.AppCompat.Small"
|
|
||||||
android:textStyle="italic"
|
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
|
||||||
app:layout_constraintTop_toBottomOf="@id/tvPrefix" />
|
|
||||||
|
|
||||||
<EditText
|
|
||||||
android:id="@+id/etPrefix"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:hint="@string/title_optional"
|
|
||||||
android:inputType="text"
|
|
||||||
android:textAppearance="@style/TextAppearance.AppCompat.Medium"
|
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
|
||||||
app:layout_constraintTop_toBottomOf="@id/tvPrefixRemark" />
|
|
||||||
|
|
||||||
<Button
|
<Button
|
||||||
android:id="@+id/btnColor"
|
android:id="@+id/btnColor"
|
||||||
style="@style/buttonStyleSmall"
|
style="@style/buttonStyleSmall"
|
||||||
|
@ -298,7 +255,7 @@
|
||||||
android:minHeight="0dp"
|
android:minHeight="0dp"
|
||||||
android:text="@string/title_account_color"
|
android:text="@string/title_account_color"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toBottomOf="@id/etPrefix" />
|
app:layout_constraintTop_toBottomOf="@id/etName" />
|
||||||
|
|
||||||
<View
|
<View
|
||||||
android:id="@+id/vwColor"
|
android:id="@+id/vwColor"
|
||||||
|
@ -320,12 +277,15 @@
|
||||||
app:layout_constraintStart_toEndOf="@id/vwColor"
|
app:layout_constraintStart_toEndOf="@id/vwColor"
|
||||||
app:layout_constraintTop_toTopOf="@id/btnColor" />
|
app:layout_constraintTop_toTopOf="@id/btnColor" />
|
||||||
|
|
||||||
<CheckBox
|
<Button
|
||||||
android:id="@+id/cbNotify"
|
android:id="@+id/btnAdvanced"
|
||||||
|
style="@style/buttonStyleSmall"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginTop="12dp"
|
android:layout_marginTop="12dp"
|
||||||
android:text="@string/title_account_notify"
|
android:minWidth="0dp"
|
||||||
|
android:minHeight="0dp"
|
||||||
|
android:text="@string/title_setup_advanced"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toBottomOf="@id/btnColor" />
|
app:layout_constraintTop_toBottomOf="@id/btnColor" />
|
||||||
|
|
||||||
|
@ -336,7 +296,7 @@
|
||||||
android:layout_marginTop="12dp"
|
android:layout_marginTop="12dp"
|
||||||
android:text="@string/title_synchronize_account"
|
android:text="@string/title_synchronize_account"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toBottomOf="@id/cbNotify" />
|
app:layout_constraintTop_toBottomOf="@id/btnAdvanced" />
|
||||||
|
|
||||||
<CheckBox
|
<CheckBox
|
||||||
android:id="@+id/cbPrimary"
|
android:id="@+id/cbPrimary"
|
||||||
|
@ -347,6 +307,15 @@
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toBottomOf="@id/cbSynchronize" />
|
app:layout_constraintTop_toBottomOf="@id/cbSynchronize" />
|
||||||
|
|
||||||
|
<CheckBox
|
||||||
|
android:id="@+id/cbNotify"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="12dp"
|
||||||
|
android:text="@string/title_account_notify"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toBottomOf="@id/cbPrimary" />
|
||||||
|
|
||||||
<CheckBox
|
<CheckBox
|
||||||
android:id="@+id/cbBrowse"
|
android:id="@+id/cbBrowse"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
|
@ -354,7 +323,7 @@
|
||||||
android:layout_marginTop="12dp"
|
android:layout_marginTop="12dp"
|
||||||
android:text="@string/title_advanced_browse"
|
android:text="@string/title_advanced_browse"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toBottomOf="@id/cbPrimary" />
|
app:layout_constraintTop_toBottomOf="@id/cbNotify" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/tvBrowseHint"
|
android:id="@+id/tvBrowseHint"
|
||||||
|
@ -388,6 +357,37 @@
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toBottomOf="@id/tvInterval" />
|
app:layout_constraintTop_toBottomOf="@id/tvInterval" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/tvPrefix"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="12dp"
|
||||||
|
android:text="@string/title_account_prefix"
|
||||||
|
android:textAppearance="@style/TextAppearance.AppCompat.Small"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toBottomOf="@id/etInterval" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/tvPrefixRemark"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="6dp"
|
||||||
|
android:text="@string/title_account_prefix_hint"
|
||||||
|
android:textAppearance="@style/TextAppearance.AppCompat.Small"
|
||||||
|
android:textStyle="italic"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toBottomOf="@id/tvPrefix" />
|
||||||
|
|
||||||
|
<EditText
|
||||||
|
android:id="@+id/etPrefix"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:hint="@string/title_optional"
|
||||||
|
android:inputType="text"
|
||||||
|
android:textAppearance="@style/TextAppearance.AppCompat.Medium"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toBottomOf="@id/tvPrefixRemark" />
|
||||||
|
|
||||||
<!-- check -->
|
<!-- check -->
|
||||||
|
|
||||||
<Button
|
<Button
|
||||||
|
@ -397,7 +397,7 @@
|
||||||
android:layout_marginTop="12dp"
|
android:layout_marginTop="12dp"
|
||||||
android:text="@string/title_check"
|
android:text="@string/title_check"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toBottomOf="@id/etInterval" />
|
app:layout_constraintTop_toBottomOf="@id/etPrefix" />
|
||||||
|
|
||||||
<ProgressBar
|
<ProgressBar
|
||||||
android:id="@+id/pbCheck"
|
android:id="@+id/pbCheck"
|
||||||
|
@ -573,13 +573,13 @@
|
||||||
android:id="@+id/grpAuthorize"
|
android:id="@+id/grpAuthorize"
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="0dp"
|
android:layout_height="0dp"
|
||||||
app:constraint_referenced_ids="tvUser,etUser,tvPassword,tilPassword" />
|
app:constraint_referenced_ids="tvUser,etUser,tvPassword,tilPassword,tvName,tvNameRemark,etName,btnColor,vwColor,ibColorDefault" />
|
||||||
|
|
||||||
<androidx.constraintlayout.widget.Group
|
<androidx.constraintlayout.widget.Group
|
||||||
android:id="@+id/grpAdvanced"
|
android:id="@+id/grpAdvanced"
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="0dp"
|
android:layout_height="0dp"
|
||||||
app:constraint_referenced_ids="tvName,tvNameRemark,etName,tvPrefix,tvPrefixRemark,etPrefix,btnColor,vwColor,ibColorDefault,cbNotify,cbSynchronize,cbPrimary,cbBrowse,tvBrowseHint,tvInterval,etInterval" />
|
app:constraint_referenced_ids="tvPrefix,tvPrefixRemark,etPrefix,cbNotify,cbSynchronize,cbPrimary,cbBrowse,tvBrowseHint,tvInterval,etInterval" />
|
||||||
|
|
||||||
<androidx.constraintlayout.widget.Group
|
<androidx.constraintlayout.widget.Group
|
||||||
android:id="@+id/grpFolders"
|
android:id="@+id/grpFolders"
|
||||||
|
|
Loading…
Reference in New Issue