Skip to content

Commit 12e4477

Browse files
committed
Adding support for Android 6.0 and Device Software Version
1 parent 8a2b8cc commit 12e4477

File tree

9 files changed

+172
-21
lines changed

9 files changed

+172
-21
lines changed

app/build.gradle

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,14 @@ apply plugin: 'com.android.application'
22

33
android {
44
compileSdkVersion 23
5-
buildToolsVersion "23.0.0"
5+
buildToolsVersion "23.0.2"
66

77
defaultConfig {
88
applicationId "org.thehellnet.mobile.myinfos"
99
minSdkVersion 15
1010
targetSdkVersion 23
11-
versionCode 7
12-
versionName "1.0"
11+
versionCode 9
12+
versionName "1.2"
1313
}
1414
buildTypes {
1515
release {
@@ -21,5 +21,5 @@ android {
2121

2222
dependencies {
2323
compile fileTree(dir: 'libs', include: ['*.jar'])
24-
compile 'com.android.support:appcompat-v7:23.0.0'
24+
compile 'com.android.support:appcompat-v7:23.1.1'
2525
}

app/src/main/AndroidManifest.xml

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,15 +11,22 @@
1111
android:icon="@mipmap/ic_launcher"
1212
android:label="@string/app_name"
1313
android:theme="@style/AppTheme">
14+
1415
<activity
1516
android:name=".activity.MainActivity"
1617
android:label="@string/app_name">
1718
<intent-filter>
1819
<action android:name="android.intent.action.MAIN" />
19-
2020
<category android:name="android.intent.category.LAUNCHER" />
21+
<category android:name="android.intent.category.DEFAULT" />
22+
<category android:name="android.intent.category.BROWSABLE" />
2123
</intent-filter>
2224
</activity>
25+
26+
<activity
27+
android:name=".activity.NoPermsActivity"
28+
android:label="@string/app_name"/>
29+
2330
</application>
2431

2532
</manifest>

app/src/main/java/org/thehellnet/mobile/myinfos/activity/MainActivity.java

Lines changed: 81 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,13 @@
11
package org.thehellnet.mobile.myinfos.activity;
22

3+
import android.Manifest;
4+
import android.app.Activity;
5+
import android.content.Intent;
6+
import android.content.pm.PackageManager;
37
import android.os.Bundle;
4-
import android.support.v7.app.AppCompatActivity;
8+
import android.support.annotation.NonNull;
9+
import android.support.v4.app.ActivityCompat;
10+
import android.support.v4.content.ContextCompat;
511
import android.telephony.TelephonyManager;
612
import android.view.Menu;
713
import android.view.MenuItem;
@@ -13,7 +19,9 @@
1319
import org.thehellnet.mobile.myinfos.R;
1420
import org.thehellnet.mobile.myinfos.utility.AppUtils;
1521

16-
public class MainActivity extends AppCompatActivity {
22+
public class MainActivity extends Activity {
23+
24+
private static final int REQUEST_CODE_READ_PHONE_STATE = 1;
1725

1826
private TelephonyManager telephonyManager;
1927

@@ -46,32 +54,89 @@ public boolean onOptionsItemSelected(MenuItem item) {
4654
@Override
4755
protected void onResume() {
4856
super.onResume();
49-
updateUiValues();
57+
58+
if (checkPermissions()) {
59+
updateUiValues();
60+
}
61+
}
62+
63+
@Override
64+
public void onRequestPermissionsResult(int requestCode,
65+
@NonNull String[] permissions,
66+
@NonNull int[] grantResults) {
67+
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
68+
69+
if (grantResults.length > 0) {
70+
switch (requestCode) {
71+
case REQUEST_CODE_READ_PHONE_STATE:
72+
if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
73+
updateUiValues();
74+
} else {
75+
startActivity(new Intent(MyInfos.getAppContext(), NoPermsActivity.class));
76+
finish();
77+
}
78+
break;
79+
}
80+
}
5081
}
5182

5283
private void initPrivates() {
5384
telephonyManager = (TelephonyManager) getSystemService(TELEPHONY_SERVICE);
5485
}
5586

87+
private boolean checkPermissions() {
88+
if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_PHONE_STATE)
89+
== PackageManager.PERMISSION_GRANTED) {
90+
return true;
91+
} else {
92+
ActivityCompat.requestPermissions(this,
93+
new String[]{Manifest.permission.READ_PHONE_STATE},
94+
REQUEST_CODE_READ_PHONE_STATE);
95+
}
96+
return false;
97+
}
98+
5699
private void updateUiVersion() {
57100
TextView version = (TextView) findViewById(R.id.version_value);
58101
version.setText(String.format("App version %s", AppUtils.getAppVersion()));
59102
}
60103

61104
private void updateUiValues() {
62-
EditText imei = (EditText) findViewById(R.id.imei_value);
63-
imei.setText(telephonyManager.getDeviceId());
64-
65-
EditText iccid = (EditText) findViewById(R.id.iccid_value);
66-
iccid.setText(telephonyManager.getSimSerialNumber());
67-
EditText number = (EditText) findViewById(R.id.number_value);
68-
number.setText(telephonyManager.getLine1Number().length() > 0
69-
? telephonyManager.getLine1Number()
70-
: getString(R.string.ui_value_notdefined));
71-
EditText operator = (EditText) findViewById(R.id.operator_value);
72-
operator.setText(telephonyManager.getNetworkOperatorName());
73-
EditText subscriber = (EditText) findViewById(R.id.subscriber_value);
74-
subscriber.setText(telephonyManager.getSubscriberId());
105+
if (telephonyManager == null) {
106+
return;
107+
}
108+
109+
if (telephonyManager.getDeviceId() != null) {
110+
EditText imei = (EditText) findViewById(R.id.imei_value);
111+
imei.setText(telephonyManager.getDeviceId());
112+
}
113+
114+
if (telephonyManager.getDeviceSoftwareVersion() != null) {
115+
EditText swver = (EditText) findViewById(R.id.swver_value);
116+
swver.setText(telephonyManager.getDeviceSoftwareVersion());
117+
}
118+
119+
if (telephonyManager.getSimSerialNumber() != null) {
120+
EditText iccid = (EditText) findViewById(R.id.iccid_value);
121+
iccid.setText(telephonyManager.getSimSerialNumber());
122+
}
123+
124+
if (telephonyManager.getLine1Number() != null) {
125+
EditText number = (EditText) findViewById(R.id.number_value);
126+
number.setText(telephonyManager.getLine1Number().length() > 0
127+
? telephonyManager.getLine1Number()
128+
: getString(R.string.ui_value_notdefined));
129+
}
130+
131+
if (telephonyManager.getNetworkOperatorName() != null) {
132+
EditText operator = (EditText) findViewById(R.id.operator_value);
133+
operator.setText(telephonyManager.getNetworkOperatorName());
134+
}
135+
136+
if (telephonyManager.getSubscriberId() != null) {
137+
EditText subscriber = (EditText) findViewById(R.id.subscriber_value);
138+
subscriber.setText(telephonyManager.getSubscriberId());
139+
}
75140
}
76141

77142
private void showVersionToast() {
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
package org.thehellnet.mobile.myinfos.activity;
2+
3+
import android.app.Activity;
4+
import android.os.Bundle;
5+
import android.view.View;
6+
import android.widget.Button;
7+
8+
import org.thehellnet.mobile.myinfos.R;
9+
10+
/**
11+
* Created by sardylan on 04/01/16.
12+
*/
13+
public class NoPermsActivity extends Activity {
14+
15+
@Override
16+
protected void onCreate(Bundle savedInstanceState) {
17+
super.onCreate(savedInstanceState);
18+
setContentView(R.layout.activity_no_perms);
19+
}
20+
21+
@Override
22+
protected void onResume() {
23+
super.onResume();
24+
setOnclickListeners();
25+
}
26+
27+
private void setOnclickListeners() {
28+
Button button = (Button) findViewById(R.id.button_close);
29+
button.setOnClickListener(new View.OnClickListener() {
30+
@Override
31+
public void onClick(View v) {
32+
finish();
33+
}
34+
});
35+
}
36+
}

app/src/main/res/layout/activity_main.xml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,16 @@
4141
<EditText
4242
android:id="@+id/imei_value"
4343
style="@style/ui_infos_value" />
44+
45+
<TextView
46+
android:id="@+id/swver_label"
47+
style="@style/ui_infos_label"
48+
android:text="@string/ui_label_swver" />
49+
50+
<EditText
51+
android:id="@+id/swver_value"
52+
style="@style/ui_infos_value" />
53+
4454
</LinearLayout>
4555

4656
<TextView
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
3+
android:layout_width="match_parent"
4+
android:layout_height="match_parent">
5+
6+
<TextView
7+
android:id="@+id/no_perms_message"
8+
android:layout_width="match_parent"
9+
android:layout_height="wrap_content"
10+
android:layout_centerInParent="true"
11+
android:gravity="center"
12+
android:text="@string/activity_no_perms_message"
13+
android:textSize="24sp" />
14+
15+
<Button
16+
android:id="@+id/button_close"
17+
android:layout_width="wrap_content"
18+
android:layout_height="wrap_content"
19+
android:layout_alignParentBottom="true"
20+
android:layout_centerHorizontal="true"
21+
android:text="@string/ui_button_close" />
22+
</RelativeLayout>

app/src/main/res/values-en/strings.xml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,7 @@
1010
<string name="ui_value_notdefined">not defined</string>
1111
<string name="ui_label_operator">Operator (Carrier)</string>
1212
<string name="ui_label_subscriber">Subscriber ID</string>
13+
<string name="activity_no_perms_message">App cannot work!!\nNo permissions to read phone state</string>
14+
<string name="ui_button_close">Close</string>
15+
<string name="ui_label_swver">Software Version</string>
1316
</resources>

app/src/main/res/values-it/strings.xml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,7 @@
1010
<string name="ui_value_notdefined">non impostato</string>
1111
<string name="ui_label_operator">Operatore</string>
1212
<string name="ui_label_subscriber">Subscriber ID</string>
13+
<string name="activity_no_perms_message">L\'app non può funzionare senza i permessi</string>
14+
<string name="ui_button_close">Chiudi</string>
15+
<string name="ui_label_swver">Versione Software</string>
1316
</resources>

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

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,11 @@
33

44
<string name="menu_version">menu_version</string>
55

6+
<string name="activity_no_perms_message">activity_no_perms_message</string>
7+
68
<string name="ui_title_phone">ui_title_phone</string>
79
<string name="ui_label_imei">ui_label_imei</string>
10+
<string name="ui_label_swver">ui_label_swver</string>
811

912
<string name="ui_title_sim">ui_title_sim</string>
1013
<string name="ui_label_iccid">ui_label_iccid</string>
@@ -13,4 +16,6 @@
1316
<string name="ui_label_subscriber">ui_label_subscriber</string>
1417

1518
<string name="ui_value_notdefined">ui_value_notdefined</string>
19+
20+
<string name="ui_button_close">ui_button_close</string>
1621
</resources>

0 commit comments

Comments
 (0)