Skip to content

Commit fab49b8

Browse files
committed
Add multiple sim support
1 parent 5c3b7aa commit fab49b8

File tree

6 files changed

+114
-2
lines changed

6 files changed

+114
-2
lines changed

android/app/src/main/java/com/httpsms/Constants.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,8 @@ class Constants {
44
companion object {
55
const val KEY_MESSAGE_ID = "KEY_MESSAGE_ID"
66
const val KEY_HEARTBEAT_ID = "KEY_HEARTBEAT_ID"
7+
8+
const val SIM1 = "SIM1"
9+
const val SIM2 = "SIM2"
710
}
811
}

android/app/src/main/java/com/httpsms/MainActivity.kt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,10 @@ class MainActivity : AppCompatActivity() {
127127

128128
private fun startStickyNotification(context: Context) {
129129
Timber.d("starting foreground service")
130+
if(!Settings.getActiveStatus(context)) {
131+
Timber.d("active status is false, not starting foreground service")
132+
return
133+
}
130134
val notificationIntent = Intent(context, StickyNotificationService::class.java)
131135
val service = context.startForegroundService(notificationIntent)
132136
Timber.d("foreground service started [${service?.className}]")
@@ -215,6 +219,9 @@ class MainActivity : AppCompatActivity() {
215219
} else {
216220
Settings.setActiveStatusAsync(context, isChecked)
217221
}
222+
if (isChecked) {
223+
startStickyNotification(context)
224+
}
218225
}
219226
}
220227
}

android/app/src/main/java/com/httpsms/Settings.kt

Lines changed: 30 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,10 @@ object Settings {
1010

1111
private const val SETTINGS_OWNER = "SETTINGS_OWNER"
1212
private const val SETTINGS_ACTIVE = "SETTINGS_ACTIVE_STATUS"
13+
private const val SETTINGS_SIM1_ACTIVE = "SETTINGS_SIM1_ACTIVE_STATUS"
14+
private const val SETTINGS_SIM2_ACTIVE = "SETTINGS_SIM2_ACTIVE_STATUS"
15+
private const val SETTINGS_SIM1_INCOMING_ACTIVE = "SETTINGS_SIM1_INCOMING_ACTIVE"
16+
private const val SETTINGS_SIM2_INCOMING_ACTIVE = "SETTINGS_SIM1_INCOMING_ACTIVE"
1317
private const val SETTINGS_API_KEY = "SETTINGS_API_KEY"
1418
private const val SETTINGS_SERVER_URL = "SETTINGS_SERVER_URL"
1519
private const val SETTINGS_FCM_TOKEN = "SETTINGS_FCM_TOKEN"
@@ -72,8 +76,6 @@ object Settings {
7276
}
7377

7478
fun getActiveStatus(context: Context): Boolean {
75-
Timber.d(Settings::getActiveStatus.name)
76-
7779
val activeStatus = PreferenceManager
7880
.getDefaultSharedPreferences(context)
7981
.getBoolean(this.SETTINGS_ACTIVE,true)
@@ -82,6 +84,32 @@ object Settings {
8284
return activeStatus
8385
}
8486

87+
fun getIncomingMessageEnabled(context: Context, sim: String): Boolean {
88+
var setting = this.SETTINGS_SIM1_INCOMING_ACTIVE
89+
if (sim == Constants.SIM2) {
90+
setting = this.SETTINGS_SIM2_INCOMING_ACTIVE
91+
}
92+
val activeStatus = PreferenceManager
93+
.getDefaultSharedPreferences(context)
94+
.getBoolean(setting,true)
95+
96+
Timber.d("SETTINGS_${sim}_INCOMING_ACTIVE: [$activeStatus]")
97+
return activeStatus
98+
}
99+
100+
fun getActiveStatus(context: Context, sim: String): Boolean {
101+
var setting = this.SETTINGS_SIM1_ACTIVE
102+
if (sim == Constants.SIM2) {
103+
setting = this.SETTINGS_SIM2_ACTIVE
104+
}
105+
val activeStatus = PreferenceManager
106+
.getDefaultSharedPreferences(context)
107+
.getBoolean(setting,true)
108+
109+
Timber.d("SETTINGS_${sim}_ACTIVE: [$activeStatus]")
110+
return activeStatus
111+
}
112+
85113
fun setActiveStatusAsync(context: Context, status: Boolean) {
86114
Timber.d(Settings::setActiveStatusAsync.name)
87115

android/app/src/main/java/com/httpsms/SettingsActivity.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ class SettingsActivity : AppCompatActivity() {
1818

1919
private fun registerListeners() {
2020
appToolbar().setOnClickListener { onBackClicked() }
21+
findViewById<MaterialButton>(R.id.settingsLogoutButton).setOnClickListener { onLogoutClick() }
2122
}
2223

2324
private fun onBackClicked() {

android/app/src/main/res/layout/activity_settings.xml

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,75 @@
2727
app:title="App Settings" />
2828
</com.google.android.material.appbar.AppBarLayout>
2929

30+
<LinearLayout
31+
app:layout_constraintTop_toBottomOf="@+id/settings_app_bar_layout"
32+
android:layout_width="match_parent"
33+
android:layout_height="wrap_content"
34+
android:paddingLeft="16dp"
35+
android:layout_marginTop="16dp"
36+
android:paddingRight="16dp"
37+
android:orientation="vertical">
38+
<com.google.android.material.textfield.TextInputLayout
39+
android:id="@+id/settingsSIM1"
40+
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
41+
android:layout_width="match_parent"
42+
android:layout_height="wrap_content"
43+
app:errorEnabled="true"
44+
android:hint="@string/settings_sim1"
45+
app:layout_constraintTop_toTopOf="parent"
46+
tools:layout_editor_absoluteX="16dp">
47+
48+
<com.google.android.material.textfield.TextInputEditText
49+
android:id="@+id/settingsSIM1Input"
50+
android:layout_width="match_parent"
51+
android:layout_height="wrap_content"
52+
android:inputType="textMultiLine"
53+
tools:ignore="TextContrastCheck" />
54+
55+
</com.google.android.material.textfield.TextInputLayout>
56+
57+
<com.google.android.material.switchmaterial.SwitchMaterial
58+
android:id="@+id/settings_sim1_incoming_messages"
59+
android:layout_width="match_parent"
60+
android:layout_height="wrap_content"
61+
android:textSize="18sp"
62+
android:layout_marginBottom="16dp"
63+
android:text="@string/settings_incoming_messages_sim1"
64+
android:minHeight="48dp"
65+
tools:ignore="TouchTargetSizeCheck" />
66+
67+
<com.google.android.material.textfield.TextInputLayout
68+
android:id="@+id/settingsSIM2"
69+
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
70+
android:layout_width="match_parent"
71+
android:layout_height="wrap_content"
72+
app:errorEnabled="true"
73+
android:hint="@string/settings_sim_2"
74+
app:layout_constraintTop_toTopOf="parent"
75+
tools:layout_editor_absoluteX="16dp">
76+
77+
<com.google.android.material.textfield.TextInputEditText
78+
android:id="@+id/loginApiKeyTextInput"
79+
android:layout_width="match_parent"
80+
android:layout_height="wrap_content"
81+
android:inputType="textMultiLine"
82+
tools:ignore="TextContrastCheck" />
83+
84+
</com.google.android.material.textfield.TextInputLayout>
85+
86+
<com.google.android.material.switchmaterial.SwitchMaterial
87+
android:id="@+id/settings_sim2_incoming_messages"
88+
android:layout_width="match_parent"
89+
android:layout_height="wrap_content"
90+
android:textSize="18sp"
91+
android:text="@string/settings_incoming_messages_sim2"
92+
android:minHeight="48dp"
93+
android:layout_marginBottom="16dp"
94+
tools:ignore="TouchTargetSizeCheck" />
95+
96+
97+
</LinearLayout>
98+
3099
<com.google.android.material.button.MaterialButton
31100
android:id="@+id/settingsLogoutButton"
32101
style="@style/Widget.MaterialComponents.Button.Icon"

android/app/src/main/res/values/strings.xml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,4 +18,8 @@
1818
<string name="app_version">httpsms.com - %s</string>
1919
<string name="disable_battery_optimization">Disable Battery Optimization</string>
2020
<string name="main_app_settings">App Settings</string>
21+
<string name="settings_sim1">SIM1</string>
22+
<string name="settings_sim_2">SIM2</string>
23+
<string name="settings_incoming_messages_sim1">Incoming Messages (SIM1)</string>
24+
<string name="settings_incoming_messages_sim2">Incoming Messages (SIM2)</string>
2125
</resources>

0 commit comments

Comments
 (0)