Skip to content

Commit b900a52

Browse files
committed
Build133
- Improved license verification screen - MVVM architecture for license verification - Auto focus for keyboards - Fixed fuzzy rate dialog issue
1 parent 1ce66cf commit b900a52

File tree

15 files changed

+275
-107
lines changed

15 files changed

+275
-107
lines changed

.idea/misc.xml

Lines changed: 4 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

app/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ android {
5050

5151
compileSdkVersion 30
5252

53-
def appVersionCode = 132
53+
def appVersionCode = 133
5454
def appVersionName = "positional_build_${appVersionCode}_final"
5555

5656
defaultConfig {

app/src/main/java/app/simple/positional/activities/main/MainActivity.kt

Lines changed: 28 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ import android.Manifest
44
import android.content.Intent
55
import android.content.pm.PackageManager
66
import android.os.Bundle
7+
import android.os.Handler
8+
import android.os.Looper
79
import android.view.animation.DecelerateInterpolator
810
import android.widget.Toast
911
import androidx.core.app.ActivityCompat
@@ -32,13 +34,14 @@ import app.simple.positional.util.LocationExtension.getLocationStatus
3234
import app.simple.positional.util.LocationPrompt.displayLocationSettingsRequest
3335

3436
class MainActivity : BaseActivity(),
35-
PermissionCallbacks,
36-
BottomSheetSlide,
37-
android.content.SharedPreferences.OnSharedPreferenceChangeListener {
37+
PermissionCallbacks,
38+
BottomSheetSlide,
39+
android.content.SharedPreferences.OnSharedPreferenceChangeListener {
3840

3941
private val defaultPermissionRequestCode = 123
4042
private lateinit var bottomBar: DynamicCornerRecyclerView
4143
private lateinit var bottomBarAdapter: BottomBarAdapter
44+
private val handler = Handler(Looper.getMainLooper())
4245

4346
override fun onCreate(savedInstanceState: Bundle?) {
4447
super.onCreate(savedInstanceState)
@@ -66,7 +69,7 @@ class MainActivity : BaseActivity(),
6669

6770
if (savedInstanceState.isNull()) {
6871
openFragment(FragmentPreferences.getCurrentTag(),
69-
FragmentPreferences.getCurrentPage())
72+
FragmentPreferences.getCurrentPage())
7073
}
7174
}
7275

@@ -76,7 +79,10 @@ class MainActivity : BaseActivity(),
7679
return
7780
} else {
7881
if (MainPreferences.getShowRatingDialog()) {
79-
Rate().show(supportFragmentManager, "rate")
82+
handler.postDelayed({
83+
Rate.newInstance()
84+
.show(supportFragmentManager, "rate")
85+
}, 1500L)
8086
}
8187
}
8288
}
@@ -93,9 +99,14 @@ class MainActivity : BaseActivity(),
9399
stopService()
94100
}
95101

102+
override fun onDestroy() {
103+
super.onDestroy()
104+
handler.removeCallbacksAndMessages(null)
105+
}
106+
96107
private fun checkRunTimePermission() {
97108
if (ActivityCompat.checkSelfPermission(applicationContext, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED &&
98-
ActivityCompat.checkSelfPermission(applicationContext, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
109+
ActivityCompat.checkSelfPermission(applicationContext, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
99110
if (MainPreferences.getShowPermissionDialog()) {
100111
val permissionDialog = Permission.newInstance()
101112
permissionDialog.show(supportFragmentManager, "permission_info")
@@ -115,7 +126,7 @@ class MainActivity : BaseActivity(),
115126
runService()
116127
} else {
117128
if (!ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.ACCESS_FINE_LOCATION) &&
118-
ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.ACCESS_COARSE_LOCATION)) {
129+
ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.ACCESS_COARSE_LOCATION)) {
119130
Toast.makeText(this, R.string.no_location_permission_alert, Toast.LENGTH_LONG).show()
120131
}
121132
}
@@ -159,41 +170,41 @@ class MainActivity : BaseActivity(),
159170
bottomBar.smoothScrollToPosition(position)
160171
getFragment(tag).let {
161172
supportFragmentManager.beginTransaction()
162-
.setCustomAnimations(R.anim.dialog_in, R.anim.dialog_out)
163-
.replace(R.id.containers, it, tag)
164-
.commit()
173+
.setCustomAnimations(R.anim.dialog_in, R.anim.dialog_out)
174+
.replace(R.id.containers, it, tag)
175+
.commit()
165176
}
166177
}
167178

168179
private fun getFragment(name: String): Fragment {
169180
when (name) {
170181
"clock" -> {
171182
return supportFragmentManager.findFragmentByTag("clock") as Clock?
172-
?: Clock.newInstance()
183+
?: Clock.newInstance()
173184
}
174185
"compass" -> {
175186
return supportFragmentManager.findFragmentByTag("compass") as Compass?
176-
?: Compass.newInstance()
187+
?: Compass.newInstance()
177188
}
178189
"location" -> {
179190
return supportFragmentManager.findFragmentByTag("location") as GPS?
180-
?: GPS.newInstance()
191+
?: GPS.newInstance()
181192
}
182193
"trail" -> {
183194
return supportFragmentManager.findFragmentByTag("trail") as Trail?
184-
?: Trail.newInstance()
195+
?: Trail.newInstance()
185196
}
186197
"level" -> {
187198
return supportFragmentManager.findFragmentByTag("level") as Level?
188-
?: Level.newInstance()
199+
?: Level.newInstance()
189200
}
190201
"settings" -> {
191202
return supportFragmentManager.findFragmentByTag("settings") as AppSettings?
192-
?: AppSettings.newInstance()
203+
?: AppSettings.newInstance()
193204
}
194205
else -> {
195206
return supportFragmentManager.findFragmentByTag("location") as GPS?
196-
?: GPS.newInstance()
207+
?: GPS.newInstance()
197208
}
198209
}
199210
}

app/src/main/java/app/simple/positional/dialogs/app/Rate.kt

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,4 +106,13 @@ class Rate : CustomBottomSheetDialogFragment() {
106106
requireContext().startActivity(webIntent)
107107
}
108108
}
109+
110+
companion object {
111+
fun newInstance(): Rate {
112+
val args = Bundle()
113+
val fragment = Rate()
114+
fragment.arguments = args
115+
return fragment
116+
}
117+
}
109118
}

app/src/main/java/app/simple/positional/dialogs/trail/AddMarker.kt

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,13 @@
11
package app.simple.positional.dialogs.trail
22

3+
import android.app.ActionBar
4+
import android.content.Context
35
import android.os.Bundle
46
import android.view.LayoutInflater
57
import android.view.View
68
import android.view.ViewGroup
9+
import android.view.WindowManager
10+
import android.view.inputmethod.InputMethodManager
711
import android.widget.EditText
812
import androidx.core.widget.doOnTextChanged
913
import app.simple.positional.R
@@ -47,12 +51,23 @@ class AddMarker : CustomDialogFragment() {
4751
nameInputEditText.setText(TrailPreferences.getLastMarkerName())
4852
noteInputEditText.setText(TrailPreferences.getLastMarkerNote())
4953

54+
kotlin.runCatching {
55+
nameInputEditText.requestFocus()
56+
dialog!!.window!!.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE)
57+
}.getOrElse {
58+
nameInputEditText.clearFocus()
59+
}
60+
5061
return view
5162
}
5263

5364
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
5465
super.onViewCreated(view, savedInstanceState)
5566

67+
with(requireContext().getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager) {
68+
showSoftInput(nameInputEditText, InputMethodManager.SHOW_FORCED)
69+
}
70+
5671
nameInputEditText.doOnTextChanged { text, _, _, _ ->
5772
TrailPreferences.setLastMarkerName(text.toString())
5873
}

app/src/main/java/app/simple/positional/dialogs/trail/AddTrail.kt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import android.os.Bundle
44
import android.view.LayoutInflater
55
import android.view.View
66
import android.view.ViewGroup
7+
import android.view.WindowManager
78
import android.widget.EditText
89
import androidx.core.widget.doOnTextChanged
910
import androidx.fragment.app.viewModels
@@ -40,6 +41,13 @@ class AddTrail : CustomDialogFragment() {
4041
nameInputEditText.setText(TrailPreferences.getLastTrailName())
4142
noteInputEditText.setText(TrailPreferences.getLastTrailNote())
4243

44+
kotlin.runCatching {
45+
nameInputEditText.requestFocus()
46+
dialog!!.window!!.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE)
47+
}.getOrElse {
48+
nameInputEditText.clearFocus()
49+
}
50+
4351
return view
4452
}
4553

0 commit comments

Comments
 (0)