Skip to content

Commit 4cd5661

Browse files
committed
v2.4 changelog edited, permissions in MapsActivity fixed, release
1 parent 177600f commit 4cd5661

File tree

8 files changed

+43
-12
lines changed

8 files changed

+43
-12
lines changed

ChangeLog.txt

+6
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
1+
v2.4
2+
- for gps- and wifi requests added timestamp to SMS
3+
- permissions requests only when they really need (now all permissions are not requested during the start)
4+
- services for searching now are "foreground" (should increase reliability)
5+
- fixes in Spanish translation
6+
17
v2.3
28
- new feature: ringing by request, even if sound muted (only from trusted numbers)
39

app/build.gradle

+2-2
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ android {
66
applicationId "ru.seva.finder"
77
minSdkVersion 17
88
targetSdkVersion 26
9-
versionCode 14
10-
versionName "2.3"
9+
versionCode 15
10+
versionName "2.4"
1111
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
1212
vectorDrawables.useSupportLibrary = true
1313
project.ext.set("archivesBaseName", "Finder" + defaultConfig.versionName)

app/src/main/AndroidManifest.xml

-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
1616
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
1717
<uses-permission android:name="android.permission.ACCESS_NOTIFICATION_POLICY" />
18-
<uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS" />
1918
<!--
2019
The following permission is needed for automatically activate GPS
2120
but this requires grant via ADB first.

app/src/main/java/ru/seva/finder/GpsSearch.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -187,7 +187,7 @@ public int onStartCommand(Intent intent, int flags, int startId) {
187187
//on new API no permission or GPS disabled
188188
if ((Build.VERSION.SDK_INT >=23 && getApplicationContext().checkSelfPermission(Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_DENIED) ||
189189
!locMan.isProviderEnabled(LocationManager.GPS_PROVIDER)) {
190-
sms_answer.append("gps not enabled");
190+
sms_answer.append("gps not enabled\n");
191191
start_send();
192192
}
193193

@@ -232,7 +232,7 @@ public void run() {
232232
sms_answer.append(gen_short_osm_url(lastLocation.getLatitude(), lastLocation.getLongitude(), OSM_ZOOM));
233233
sms_answer.append("\n");
234234
} else {
235-
sms_answer.append("unable get location");
235+
sms_answer.append("unable get location\n");
236236
}
237237
start_send();
238238
}

app/src/main/java/ru/seva/finder/MainActivity.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -577,14 +577,15 @@ private void sendMyGpsCoord() {
577577
* @param requestCode
578578
*/
579579
private void requirePermissions(@NonNull String[] requiredPerm, int requestCode) {
580-
//request missing permissions for tracking
580+
//request missing permissions
581581
ArrayList<String> lacking = new ArrayList<>();
582582
if (requiredPerm.length == 0) return;
583583
for (String permission : requiredPerm) {
584584
if (ContextCompat.checkSelfPermission(getApplicationContext(), permission) == PackageManager.PERMISSION_DENIED) {
585585
lacking.add(permission);
586586
}
587587
}
588+
if (lacking.size() == 0) return;
588589
ActivityCompat.requestPermissions(MainActivity.this, lacking.toArray(new String[0]), requestCode);
589590
}
590591

app/src/main/java/ru/seva/finder/MapsActivity.java

+21-6
Original file line numberDiff line numberDiff line change
@@ -121,11 +121,10 @@ public void onCreate(Bundle savedInstanceState) {
121121

122122
//receiver to map updating
123123
LocalBroadcastManager.getInstance(this).registerReceiver(updMap, new IntentFilter("update_map"));
124-
125-
if (Build.VERSION.SDK_INT >= 23 && ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_DENIED) {
126-
ActivityCompat.requestPermissions(this, new String[] {Manifest.permission.ACCESS_FINE_LOCATION}, 1);
124+
if (Build.VERSION.SDK_INT >= 23) {
125+
requirePermissions(new String[]{Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.WRITE_EXTERNAL_STORAGE}, 1);
126+
}
127127
}
128-
}
129128

130129
public void onResume() {
131130
super.onResume();
@@ -143,6 +142,19 @@ public void onDestroy() {
143142
super.onDestroy();
144143
}
145144

145+
private void requirePermissions(@NonNull String[] requiredPerm, int requestCode) {
146+
//request missing permissions
147+
ArrayList<String> lacking = new ArrayList<>();
148+
if (requiredPerm.length == 0) return;
149+
for (String permission : requiredPerm) {
150+
if (ContextCompat.checkSelfPermission(getApplicationContext(), permission) == PackageManager.PERMISSION_DENIED) {
151+
lacking.add(permission);
152+
}
153+
}
154+
155+
if (lacking.size() == 0) return;
156+
ActivityCompat.requestPermissions(MapsActivity.this, lacking.toArray(new String[0]), requestCode);
157+
}
146158

147159
private void trackRedraw() {
148160
Cursor query = db.query("tracking_table", new String[] {"_id", "lat", "lon", "speed", "date"}, "track_id = ?", new String[] {String.valueOf(track_id)}, null, null, "_id ASC");
@@ -182,8 +194,11 @@ public void onReceive(Context context, Intent intent) {
182194
};
183195

184196
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
185-
if (grantResults[0] == PackageManager.PERMISSION_DENIED) {
186-
Toast.makeText(this, R.string.no_permits_received, Toast.LENGTH_SHORT).show();
197+
for (int perm : grantResults) {
198+
if (perm == PackageManager.PERMISSION_DENIED) {
199+
Toast.makeText(this, R.string.no_permits_received, Toast.LENGTH_SHORT).show();
200+
break;
201+
}
187202
}
188203
}
189204

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
v2.4
2+
- for gps- and wifi requests added timestamp to SMS
3+
- permissions requests only when they really need (now all permissions are not requested during the start)
4+
- services for searching now are "foreground" (should increase reliability)
5+
- fixes in Spanish translation
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
v2.4
2+
- в ответное SMS добавлена метка времени (для поиска gps- и wifi)
3+
- теперь запрашиваются только те права, котрые необходимы для данных настроек (не все подряд при первом же страте)
4+
- сервисы для поиска (gps/wifi) теперь "foreground" (должно улучшить надёжность - android не завершит их в фоне)
5+
- исправления в испанском переводе

0 commit comments

Comments
 (0)