M build.gradle => build.gradle +5 -1
@@ 17,6 17,9 @@ repositories {
maven {
url 'https://maven.google.com'
}
+ maven {
+ url "https://jitpack.io"
+ }
}
configurations {
@@ 37,8 40,8 @@ dependencies {
compile "com.android.support:appcompat-v7:$supportLibVersion"
compile "com.android.support:support-emoji:$supportLibVersion"
freeCompile "com.android.support:support-emoji-bundled:$supportLibVersion"
- compile 'org.bouncycastle:bcmail-jdk15on:1.52'
compile 'org.jitsi:org.otr4j:0.22'
+ compile 'org.bouncycastle:bcmail-jdk15on:1.56'
compile 'org.gnu.inet:libidn:1.15'
compile 'com.google.zxing:core:3.2.1'
compile 'com.google.zxing:android-integration:3.2.1'
@@ 50,6 53,7 @@ dependencies {
compile 'com.makeramen:roundedimageview:2.3.0'
compile "com.wefika:flowlayout:0.4.1"
compile 'net.ypresto.androidtranscoder:android-transcoder:0.2.0'
+ compile 'com.github.scottyab:showhidepasswordedittext:0.8'
}
M src/main/java/eu/siacs/conversations/ui/EditAccountActivity.java => src/main/java/eu/siacs/conversations/ui/EditAccountActivity.java +1 -41
@@ 74,7 74,6 @@ public class EditAccountActivity extends OmemoActivity implements OnAccountUpdat
private static final int REQUEST_DATA_SAVER = 0x37af244;
private AutoCompleteTextView mAccountJid;
private EditText mPassword;
- private EditText mPasswordConfirm;
private CheckBox mRegisterNew;
private Button mCancelButton;
private Button mSaveButton;
@@ 130,7 129,6 @@ public class EditAccountActivity extends OmemoActivity implements OnAccountUpdat
@Override
public void onClick(final View v) {
final String password = mPassword.getText().toString();
- final String passwordConfirm = mPasswordConfirm.getText().toString();
final boolean wasDisabled = mAccount != null && mAccount.getStatus() == Account.State.DISABLED;
if (!mInitMode && passwordChangedInMagicCreateMode()) {
@@ 219,13 217,6 @@ public class EditAccountActivity extends OmemoActivity implements OnAccountUpdat
mAccountJid.requestFocus();
return;
}
- if (registerNewAccount) {
- if (!password.equals(passwordConfirm)) {
- mPasswordConfirm.setError(getString(R.string.passwords_do_not_match));
- mPasswordConfirm.requestFocus();
- return;
- }
- }
if (mAccount != null) {
if (mInitMode && mAccount.isOptionSet(Account.OPTION_MAGIC_CREATE)) {
mAccount.setOption(Account.OPTION_MAGIC_CREATE, mAccount.getPassword().contains(password));
@@ 234,7 225,6 @@ public class EditAccountActivity extends OmemoActivity implements OnAccountUpdat
mAccount.setPort(numericPort);
mAccount.setHostname(hostname);
mAccountJid.setError(null);
- mPasswordConfirm.setError(null);
mAccount.setPassword(password);
mAccount.setOption(Account.OPTION_REGISTER, registerNewAccount);
if (!xmppConnectionService.updateAccount(mAccount)) {
@@ 523,7 513,6 @@ public class EditAccountActivity extends OmemoActivity implements OnAccountUpdat
this.mAccountJidLabel = (TextView) findViewById(R.id.account_jid_label);
this.mPassword = (EditText) findViewById(R.id.account_password);
this.mPassword.addTextChangedListener(this.mTextWatcher);
- this.mPasswordConfirm = (EditText) findViewById(R.id.account_password_confirm);
this.mAvatar = (ImageView) findViewById(R.id.avater);
this.mAvatar.setOnClickListener(this.mAvatarClickListener);
this.mRegisterNew = (CheckBox) findViewById(R.id.account_register_new);
@@ 580,13 569,7 @@ public class EditAccountActivity extends OmemoActivity implements OnAccountUpdat
}
final OnCheckedChangeListener OnCheckedShowConfirmPassword = new OnCheckedChangeListener() {
@Override
- public void onCheckedChanged(final CompoundButton buttonView,
- final boolean isChecked) {
- if (isChecked) {
- mPasswordConfirm.setVisibility(View.VISIBLE);
- } else {
- mPasswordConfirm.setVisibility(View.GONE);
- }
+ public void onCheckedChanged(final CompoundButton buttonView, final boolean isChecked) {
updateSaveButton();
}
};
@@ 603,7 586,6 @@ public class EditAccountActivity extends OmemoActivity implements OnAccountUpdat
final MenuItem showBlocklist = menu.findItem(R.id.action_show_block_list);
final MenuItem showMoreInfo = menu.findItem(R.id.action_server_info_show_more);
final MenuItem changePassword = menu.findItem(R.id.action_change_password_on_server);
- final MenuItem showPassword = menu.findItem(R.id.action_show_password);
final MenuItem renewCertificate = menu.findItem(R.id.action_renew_certificate);
final MenuItem mamPrefs = menu.findItem(R.id.action_mam_prefs);
final MenuItem changePresence = menu.findItem(R.id.action_change_presence);
@@ 629,13 611,6 @@ public class EditAccountActivity extends OmemoActivity implements OnAccountUpdat
mamPrefs.setVisible(false);
changePresence.setVisible(false);
}
-
- if (mAccount != null) {
- showPassword.setVisible(mAccount.isOptionSet(Account.OPTION_MAGIC_CREATE)
- && !mAccount.isOptionSet(Account.OPTION_REGISTER));
- } else {
- showPassword.setVisible(false);
- }
return super.onCreateOptionsMenu(menu);
}
@@ 786,9 761,6 @@ public class EditAccountActivity extends OmemoActivity implements OnAccountUpdat
case R.id.action_change_presence:
changePresence();
break;
- case R.id.action_show_password:
- showPassword();
- break;
}
return super.onOptionsItemSelected(item);
}
@@ 863,7 835,6 @@ public class EditAccountActivity extends OmemoActivity implements OnAccountUpdat
if (this.mAccount.isOptionSet(Account.OPTION_REGISTER)) {
this.mRegisterNew.setVisibility(View.VISIBLE);
this.mRegisterNew.setChecked(true);
- this.mPasswordConfirm.setText(this.mAccount.getPassword());
} else {
this.mRegisterNew.setVisibility(View.GONE);
this.mRegisterNew.setChecked(false);
@@ 1131,17 1102,6 @@ public class EditAccountActivity extends OmemoActivity implements OnAccountUpdat
xmppConnectionService.fetchMamPreferences(mAccount, this);
}
- private void showPassword() {
- AlertDialog.Builder builder = new AlertDialog.Builder(this);
- View view = getLayoutInflater().inflate(R.layout.dialog_show_password, null);
- TextView password = (TextView) view.findViewById(R.id.password);
- password.setText(mAccount.getPassword());
- builder.setTitle(R.string.password);
- builder.setView(view);
- builder.setPositiveButton(R.string.cancel, null);
- builder.create().show();
- }
-
@Override
public void onKeyStatusUpdated(AxolotlService.FetchStatus report) {
refreshUi();
M src/main/java/eu/siacs/conversations/ui/XmppActivity.java => src/main/java/eu/siacs/conversations/ui/XmppActivity.java +6 -4
@@ 426,8 426,9 @@ public abstract class XmppActivity extends Activity {
protected boolean isOptimizingBattery() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
- PowerManager pm = (PowerManager) getSystemService(POWER_SERVICE);
- return !pm.isIgnoringBatteryOptimizations(getPackageName());
+ final PowerManager pm = (PowerManager) getSystemService(POWER_SERVICE);
+ return pm == null
+ && !pm.isIgnoringBatteryOptimizations(getPackageName());
} else {
return false;
}
@@ 435,8 436,9 @@ public abstract class XmppActivity extends Activity {
protected boolean isAffectedByDataSaver() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
- ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
- return cm.isActiveNetworkMetered()
+ final ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
+ return cm != null
+ && cm.isActiveNetworkMetered()
&& cm.getRestrictBackgroundStatus() == ConnectivityManager.RESTRICT_BACKGROUND_STATUS_ENABLED;
} else {
return false;
M src/main/res/layout/activity_edit_account.xml => src/main/res/layout/activity_edit_account.xml +71 -64
@@ 29,6 29,7 @@
android:background="?attr/infocard_border"
android:orientation="vertical"
android:padding="@dimen/infocard_padding">
+
<com.makeramen.roundedimageview.RoundedImageView
android:id="@+id/avater"
android:layout_width="72dp"
@@ 37,11 38,13 @@
android:layout_marginRight="16dp"
android:contentDescription="@string/account_image_description"
app:riv_corner_radius="2dp"/>
+
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_toRightOf="@+id/avater"
android:orientation="vertical">
+
<TextView
android:id="@+id/account_jid_label"
android:layout_width="wrap_content"
@@ 68,15 71,24 @@
android:textColor="?attr/color_text_primary"
android:textSize="?attr/TextSizeBody"/>
- <EditText
- android:id="@+id/account_password"
+ <RelativeLayout
android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:hint="@string/password"
- android:inputType="textPassword"
- android:textColor="?attr/color_text_primary"
- android:textColorHint="?attr/color_text_secondary"
- android:textSize="?attr/TextSizeBody"/>
+ android:layout_height="match_parent"
+ android:minHeight="56sp">
+
+ <com.scottyab.showhidepasswordedittext.ShowHidePasswordEditText
+ android:id="@+id/account_password"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_alignParentTop="true"
+ android:hint="@string/password"
+ android:inputType="textPassword"
+ android:textColor="?attr/color_text_primary"
+ android:textColorHint="?attr/color_text_secondary"
+ android:textSize="?attr/TextSizeBody"
+ app:tint_color="?attr/color_text_secondary"/>
+ </RelativeLayout>
+
<LinearLayout
android:id="@+id/name_port"
@@ 85,11 97,13 @@
android:layout_marginTop="8dp"
android:orientation="horizontal"
android:weightSum="1">
+
<LinearLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="0.8"
android:orientation="vertical">
+
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
@@ 97,6 111,7 @@
android:text="@string/account_settings_hostname"
android:textColor="?attr/color_text_primary"
android:textSize="?attr/TextSizeBody"/>
+
<EditText
android:id="@+id/hostname"
android:layout_width="fill_parent"
@@ 107,18 122,21 @@
android:textColorHint="?attr/color_text_secondary"
android:textSize="?attr/TextSizeBody"/>
</LinearLayout>
+
<LinearLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="0.2"
android:orientation="vertical"
>
+
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/account_settings_port"
android:textColor="?attr/color_text_primary"
android:textSize="?attr/TextSizeBody"/>
+
<EditText
android:id="@+id/port"
android:layout_width="match_parent"
@@ 130,6 148,7 @@
android:textSize="?attr/TextSizeBody"/>
</LinearLayout>
</LinearLayout>
+
<CheckBox
android:id="@+id/account_register_new"
android:layout_width="wrap_content"
@@ 138,27 157,6 @@
android:text="@string/register_account"
android:textColor="?attr/color_text_primary"
android:textSize="?attr/TextSizeBody"/>
-
- <TextView
- android:id="@+id/account_confirm_password_desc"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="@string/account_settings_confirm_password"
- android:textColor="?attr/color_text_primary"
- android:textSize="?attr/TextSizeBody"
- android:visibility="gone"/>
-
- <EditText
- android:id="@+id/account_password_confirm"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_marginTop="8dp"
- android:hint="@string/confirm_password"
- android:inputType="textPassword"
- android:textColor="?attr/color_text_primary"
- android:textColorHint="?attr/color_text_secondary"
- android:textSize="?attr/TextSizeBody"
- android:visibility="gone"/>
</LinearLayout>
</RelativeLayout>
@@ 174,6 172,7 @@
android:orientation="vertical"
android:padding="@dimen/infocard_padding"
android:visibility="gone">
+
<TextView
android:id="@+id/os_optimization_headline"
android:layout_width="wrap_content"
@@ 182,6 181,7 @@
android:textColor="?attr/color_text_primary"
android:textSize="?attr/TextSizeHeadline"
android:textStyle="bold"/>
+
<TextView
android:id="@+id/os_optimization_body"
android:layout_width="wrap_content"
@@ 192,16 192,17 @@
android:text="@string/battery_optimizations_enabled_explained"
android:textColor="?attr/color_text_primary"
android:textSize="?attr/TextSizeBody"/>
+
<Button
android:id="@+id/os_optimization_disable"
style="?android:attr/borderlessButtonStyle"
- android:layout_marginRight="-8dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_below="@+id/os_optimization_body"
+ android:layout_marginRight="-8dp"
android:text="@string/disable"
android:textColor="@color/accent"/>
</RelativeLayout>
@@ 234,11 235,11 @@
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
+ android:ellipsize="end"
+ android:singleLine="true"
android:text="@string/server_info_session_established"
android:textColor="?attr/color_text_primary"
- android:textSize="?attr/TextSizeBody"
- android:singleLine="true"
- android:ellipsize="end"/>
+ android:textSize="?attr/TextSizeBody"/>
<TextView
android:id="@+id/session_est"
@@ 252,6 253,7 @@
</TableRow>
</TableLayout>
+
<TableLayout
android:id="@+id/server_info_more"
android:layout_width="match_parent"
@@ 267,11 269,11 @@
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
+ android:ellipsize="end"
+ android:singleLine="true"
android:text="@string/server_info_pep"
android:textColor="?attr/color_text_primary"
- android:textSize="?attr/TextSizeBody"
- android:singleLine="true"
- android:ellipsize="end"/>
+ android:textSize="?attr/TextSizeBody"/>
<TextView
android:id="@+id/server_info_pep"
@@ 291,11 293,11 @@
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
+ android:ellipsize="end"
+ android:singleLine="true"
android:text="@string/server_info_blocking"
android:textColor="?attr/color_text_primary"
- android:textSize="?attr/TextSizeBody"
- android:singleLine="true"
- android:ellipsize="end"/>
+ android:textSize="?attr/TextSizeBody"/>
<TextView
android:id="@+id/server_info_blocking"
@@ 315,11 317,11 @@
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
+ android:ellipsize="end"
+ android:singleLine="true"
android:text="@string/server_info_stream_management"
android:textColor="?attr/color_text_primary"
- android:textSize="?attr/TextSizeBody"
- android:singleLine="true"
- android:ellipsize="end"/>
+ android:textSize="?attr/TextSizeBody"/>
<TextView
android:id="@+id/server_info_sm"
@@ 339,11 341,11 @@
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
+ android:ellipsize="end"
+ android:singleLine="true"
android:text="@string/server_info_roster_version"
android:textColor="?attr/color_text_primary"
- android:textSize="?attr/TextSizeBody"
- android:singleLine="true"
- android:ellipsize="end"/>
+ android:textSize="?attr/TextSizeBody"/>
<TextView
android:id="@+id/server_info_roster_version"
@@ 363,11 365,11 @@
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
+ android:ellipsize="end"
+ android:singleLine="true"
android:text="@string/server_info_carbon_messages"
android:textColor="?attr/color_text_primary"
- android:textSize="?attr/TextSizeBody"
- android:singleLine="true"
- android:ellipsize="end"/>
+ android:textSize="?attr/TextSizeBody"/>
<TextView
android:id="@+id/server_info_carbons"
@@ 387,11 389,11 @@
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
+ android:ellipsize="end"
+ android:singleLine="true"
android:text="@string/server_info_mam"
android:textColor="?attr/color_text_primary"
- android:textSize="?attr/TextSizeBody"
- android:singleLine="true"
- android:ellipsize="end"/>
+ android:textSize="?attr/TextSizeBody"/>
<TextView
android:id="@+id/server_info_mam"
@@ 411,11 413,11 @@
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
+ android:ellipsize="end"
+ android:singleLine="true"
android:text="@string/server_info_csi"
android:textColor="?attr/color_text_primary"
- android:textSize="?attr/TextSizeBody"
- android:singleLine="true"
- android:ellipsize="end"/>
+ android:textSize="?attr/TextSizeBody"/>
<TextView
android:id="@+id/server_info_csi"
@@ 427,6 429,7 @@
android:textSize="?attr/TextSizeBody"
tools:ignore="RtlHardcoded"/>
</TableRow>
+
<TableRow
android:id="@+id/push_row"
android:layout_width="fill_parent"
@@ 435,11 438,11 @@
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
+ android:ellipsize="end"
+ android:singleLine="true"
android:text="@string/server_info_push"
android:textColor="?attr/color_text_primary"
- android:textSize="?attr/TextSizeBody"
- android:singleLine="true"
- android:ellipsize="end"/>
+ android:textSize="?attr/TextSizeBody"/>
<TextView
android:id="@+id/server_info_push"
@@ 450,6 453,7 @@
android:textColor="?attr/color_text_primary"
android:textSize="?attr/TextSizeBody"/>
</TableRow>
+
<TableRow
android:layout_width="fill_parent"
android:layout_height="wrap_content">
@@ 457,11 461,11 @@
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
+ android:ellipsize="end"
+ android:singleLine="true"
android:text="@string/server_info_http_upload"
android:textColor="?attr/color_text_primary"
- android:textSize="?attr/TextSizeBody"
- android:singleLine="true"
- android:ellipsize="end"/>
+ android:textSize="?attr/TextSizeBody"/>
<TextView
android:id="@+id/server_info_http_upload"
@@ 512,10 516,10 @@
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
+ android:alpha="?attr/icon_alpha"
android:background="?android:selectableItemBackground"
android:padding="@dimen/image_button_padding"
android:src="?attr/icon_remove"
- android:alpha="?attr/icon_alpha"
android:visibility="visible"/>
</RelativeLayout>
@@ 608,26 612,28 @@
android:id="@+id/action_copy_axolotl_to_clipboard"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
+ android:alpha="?attr/icon_alpha"
android:background="?android:selectableItemBackground"
android:contentDescription="@string/copy_omemo_clipboard_description"
android:padding="@dimen/image_button_padding"
android:src="?attr/icon_copy"
- android:alpha="?attr/icon_alpha"
android:visibility="visible"/>
+
<ImageButton
android:id="@+id/action_regenerate_axolotl_key"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
+ android:alpha="?attr/icon_alpha"
android:background="?android:selectableItemBackground"
android:contentDescription="@string/regenerate_omemo_key"
android:padding="@dimen/image_button_padding"
- android:alpha="?attr/icon_alpha"
android:src="?attr/icon_refresh"
android:visibility="gone"/>
</LinearLayout>
</RelativeLayout>
</LinearLayout>
+
<LinearLayout
android:id="@+id/other_device_keys_card"
android:layout_width="fill_parent"
@@ 658,13 664,14 @@
android:orientation="vertical"
android:showDividers="middle">
</LinearLayout>
+
<Button
android:id="@+id/clear_devices"
style="?android:attr/borderlessButtonStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:text="@string/clear_other_devices"
android:layout_gravity="center_horizontal"
+ android:text="@string/clear_other_devices"
android:textColor="@color/accent"/>
</LinearLayout>
</LinearLayout>
D src/main/res/layout/dialog_show_password.xml => src/main/res/layout/dialog_show_password.xml +0 -22
@@ 1,22 0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:orientation="vertical"
- android:paddingLeft="?attr/dialog_horizontal_padding"
- android:paddingRight="?attr/dialog_horizontal_padding"
- android:paddingBottom="?attr/dialog_vertical_padding"
- android:paddingTop="?attr/dialog_vertical_padding">
-
- <TextView
- android:id="@+id/password"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:typeface="monospace"
- android:textSize="?attr/TextSizeHeadline"
- android:fontFamily="monospace"
- android:layout_gravity="center_horizontal"
- android:textColor="@color/black87" >
- </TextView>
-
-</LinearLayout>>
\ No newline at end of file
M src/main/res/menu/editaccount.xml => src/main/res/menu/editaccount.xml +0 -5
@@ 50,11 50,6 @@
android:title="@string/mam_prefs"/>
<item
- android:id="@+id/action_show_password"
- android:showAsAction="never"
- android:title="@string/show_password"/>
-
- <item
android:id="@+id/action_change_password_on_server"
android:showAsAction="never"
android:title="@string/change_password"/>
M src/main/res/values/strings.xml => src/main/res/values/strings.xml +0 -2
@@ 179,8 179,6 @@
<string name="account_settings_example_jabber_id">username@example.com</string>
<string name="account_settings_confirm_password">Confirm password</string>
<string name="password">Password</string>
- <string name="confirm_password">Confirm password</string>
- <string name="passwords_do_not_match">Passwords do not match</string>
<string name="invalid_jid">This is not a valid Jabber ID</string>
<string name="error_out_of_memory">Out of memory. Image is too large</string>
<string name="add_phone_book_text">Do you want to add %s to your address book?</string>