Skip to content

Commit 81f9e05

Browse files
committed
Merge branch 'lukeswitz-voice-verification'
2 parents 9721975 + 33c933f commit 81f9e05

File tree

8 files changed

+81
-5
lines changed

8 files changed

+81
-5
lines changed

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ dependencies {
121121
implementation 'com.takisoft.fix:preference-v7:27.1.0.0'
122122
implementation 'com.wdullaer:materialdatetimepicker:3.5.2'
123123

124-
compile 'com.googlecode.libphonenumber:libphonenumber:8.7.0'
124+
implementation 'com.googlecode.libphonenumber:libphonenumber:8.7.0'
125125
implementation('com.mikepenz:aboutlibraries:6.0.2@aar') {
126126
transitive = true
127127
}

src/main/java/org/havenapp/main/PreferenceManager.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ public class PreferenceManager {
6161
public static final String SMS_NUMBER = "sms_number";
6262
public static final String REGISTER_SIGNAL = "register_signal";
6363
public static final String VERIFY_SIGNAL = "verify_signal";
64+
public static final String VOICE_VERIFY_SIGNAL = "voice_verify_signal";
6465
public static final String SEND_SMS = "send_sms";
6566
private static final String UNLOCK_CODE="unlock_code";
6667

@@ -273,6 +274,15 @@ public void setMonitoringTime (int delay)
273274
prefsEditor.commit();
274275
}
275276

277+
public void setVoiceVerification(boolean active) {
278+
prefsEditor.putBoolean(VOICE_VERIFY_SIGNAL, active);
279+
prefsEditor.commit();
280+
}
281+
282+
public boolean getVoiceVerificationEnabled() {
283+
return appSharedPrefs.getBoolean(VOICE_VERIFY_SIGNAL, false);
284+
}
285+
276286
public String getDirPath() {
277287
return DIR_PATH;
278288
}

src/main/java/org/havenapp/main/SettingsActivity.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import android.os.Bundle;
2323
import android.support.annotation.NonNull;
2424
import android.support.v7.app.AppCompatActivity;
25+
import android.view.View;
2526

2627
import java.io.File;
2728
import java.util.ArrayList;
@@ -62,4 +63,8 @@ public void onRequestPermissionsResult(int requestCode, @NonNull String[] permis
6263
public void onBackPressed() {
6364
mFragment.save();
6465
}
66+
67+
public void switchClickListener(View view) {
68+
mFragment.checkCallToVerify(view);
69+
}
6570
}

src/main/java/org/havenapp/main/SettingsFragment.java

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,8 @@
2626
import android.support.v7.preference.SwitchPreferenceCompat;
2727
import android.text.TextUtils;
2828
import android.view.MenuItem;
29+
import android.view.View;
30+
import android.widget.Switch;
2931
import android.widget.Toast;
3032

3133
import com.google.i18n.phonenumbers.PhoneNumberUtil;
@@ -218,6 +220,8 @@ protected void save() {
218220

219221
preferences.setActivateVideoMonitoring(videoMonitoringActive);
220222

223+
preferences.setSignalUsername(((EditTextPreference) findPreference(PreferenceManager.REGISTER_SIGNAL)).getText());
224+
221225
boolean remoteAccessActive = ((SwitchPreferenceCompat) findPreference(PreferenceManager.REMOTE_ACCESS_ACTIVE)).isChecked();
222226

223227
preferences.activateRemoteAccess(remoteAccessActive);
@@ -229,6 +233,8 @@ protected void save() {
229233
app.startServer();
230234
}
231235

236+
preferences.setVoiceVerification(false);
237+
232238
boolean heartbeatMonitorActive = ((SwitchPreferenceCompat) findPreference(PreferenceManager.HEARTBEAT_MONITOR_ACTIVE)).isChecked();
233239

234240
preferences.activateHeartbeat(heartbeatMonitorActive);
@@ -494,7 +500,7 @@ private void activateSignal(String username, String verifyCode) {
494500
SignalSender sender = SignalSender.getInstance(mActivity, username);
495501

496502
if (TextUtils.isEmpty(verifyCode)) {
497-
sender.register();
503+
sender.register(preferences.getVoiceVerificationEnabled());
498504
} else {
499505
sender.verify(verifyCode);
500506
}
@@ -561,4 +567,13 @@ private void requestChangeBatteryOptimizations ()
561567
getActivity().startActivity(intent);
562568
}
563569
}
570+
571+
public void checkCallToVerify (View v) {
572+
Switch callSwitch = v.findViewById(R.id.signalCallSwitch);
573+
if (callSwitch != null && callSwitch.isChecked()) {
574+
preferences.setVoiceVerification(true);
575+
} else {
576+
preferences.setVoiceVerification(false);
577+
}
578+
}
564579
}

src/main/java/org/havenapp/main/service/SignalSender.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ public void reset ()
5454
mInstance = null;
5555
}
5656

57-
public void register ()
57+
public void register (boolean callEnabled)
5858
{
5959
execute (new Runnable() {
6060
public void run() {
@@ -63,7 +63,10 @@ public void run() {
6363

6464
map.put("username", mUsername);
6565
map.put("command", "register");
66-
map.put("voice", false);
66+
if (!callEnabled)
67+
map.put("voice", false);
68+
else
69+
map.put("voice", true);
6770

6871
Namespace ns = new Namespace(map);
6972
mainSignal.handleCommands(ns);
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
2+
android:layout_width="match_parent"
3+
android:layout_height="match_parent"
4+
android:layout_marginBottom="@dimen/activity_vertical_large_margin"
5+
android:layout_marginTop="@dimen/activity_vertical_large_margin"
6+
android:overScrollMode="ifContentScrolls">
7+
8+
<LinearLayout
9+
android:layout_width="match_parent"
10+
android:layout_height="wrap_content"
11+
android:orientation="vertical"
12+
android:paddingBottom="@dimen/alert_def_padding"
13+
android:paddingEnd="?dialogPreferredPadding"
14+
android:paddingLeft="?dialogPreferredPadding"
15+
android:paddingRight="?dialogPreferredPadding"
16+
android:paddingStart="?dialogPreferredPadding"
17+
android:paddingTop="@dimen/alert_def_padding">
18+
19+
<TextView
20+
android:id="@android:id/message"
21+
style="?android:attr/textAppearanceSmall"
22+
android:layout_width="match_parent"
23+
android:layout_height="wrap_content"
24+
android:layout_marginBottom="@dimen/alert_def_padding"
25+
android:textColor="?android:attr/textColorSecondary" />
26+
27+
<Switch
28+
android:id="@+id/signalCallSwitch"
29+
android:layout_width="match_parent"
30+
android:layout_height="wrap_content"
31+
android:checked="false"
32+
android:onClick="switchClickListener"
33+
android:text="@string/verify_signal_by_phone" />
34+
35+
<EditText
36+
android:id="@android:id/edit"
37+
android:layout_width="match_parent"
38+
android:layout_height="wrap_content"
39+
android:hint="@string/hint_number" />
40+
41+
</LinearLayout>
42+
</ScrollView>

src/main/res/values/strings.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,7 @@
9595
<string name="register">Register</string>
9696
<string name="activate_signal">Activate Signal</string>
9797
<string name="verify_signal">Verify Signal</string>
98+
<string name="verify_signal_by_phone">Call me instead</string>
9899
<string name="enter_verification">Enter the verification code you received from the Signal registration step</string>
99100
<string name="cancel">Cancel</string>
100101
<string name="register_title">Register with Signal</string>

src/main/res/xml/settings.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@
6363

6464
<EditTextPreference
6565
style="@style/AppPreference.DialogPreferenceRegister"
66-
android:dialogLayout="@layout/pref_dialog_edit_text_hint"
66+
android:dialogLayout="@layout/pref_dialog_edit_text_hint_signal"
6767
android:dialogMessage="@string/register_signal_desc"
6868
android:inputType="phone"
6969
android:key="register_signal"

0 commit comments

Comments
 (0)