Skip to content

Commit d8eb661

Browse files
committed
target 28
1 parent c59d7c6 commit d8eb661

File tree

14 files changed

+106
-138
lines changed

14 files changed

+106
-138
lines changed

.gitignore

+2-1
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,5 @@
66
.DS_Store
77
/build
88
/captures
9-
.idea/
9+
.idea
10+
signing.properties

app/build.gradle

+24-24
Original file line numberDiff line numberDiff line change
@@ -1,42 +1,42 @@
11
apply plugin: 'com.android.application'
22

33
android {
4-
compileSdkVersion 23
5-
buildToolsVersion "23.0.2"
4+
compileSdkVersion 28
65

76
defaultConfig {
87
applicationId "rikka.smscodehelper"
98
minSdkVersion 15
10-
targetSdkVersion 23
11-
versionCode 10006
12-
versionName "1.0.7"
9+
targetSdkVersion 28
10+
versionCode 10008
11+
versionName "1.0.8"
12+
}
13+
signingConfigs {
14+
sign
15+
}
16+
compileOptions {
17+
sourceCompatibility JavaVersion.VERSION_1_8
18+
targetCompatibility JavaVersion.VERSION_1_8
1319
}
1420
buildTypes {
21+
debug {
22+
signingConfig signingConfigs.sign
23+
}
1524
release {
16-
minifyEnabled false
25+
signingConfig signingConfigs.sign
26+
minifyEnabled true
1727
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
1828
}
1929
}
20-
testOptions {
21-
unitTests.returnDefaultValues = true
22-
}
30+
}
2331

24-
applicationVariants.all { variant ->
25-
variant.outputs.each { output ->
26-
if (output.outputFile != null && output.outputFile.name.endsWith('.apk')) {
27-
output.outputFile = file("${output.outputFile.parent}/smscodehelper" +
28-
"-${variant.buildType.name.toLowerCase()}" +
29-
"-${variant.versionName}" +
30-
".apk")
31-
}
32-
}
32+
android.applicationVariants.all { variant ->
33+
variant.outputs.all {
34+
outputFileName = "sms-code-helper-${variant.versionCode}.apk"
3335
}
3436
}
3537

38+
apply from: rootProject.file('signing.gradle')
39+
3640
dependencies {
37-
compile fileTree(dir: 'libs', include: ['*.jar'])
38-
// Unit testing dependencies
39-
testCompile 'junit:junit:4.12'
40-
testCompile "org.mockito:mockito-core:1.9.5"
41-
compile 'com.android.support:appcompat-v7:23.1.1'
42-
}
41+
implementation 'androidx.core:core:1.0.0-rc01'
42+
}

app/src/main/AndroidManifest.xml

+13-8
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,35 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
3+
xmlns:tools="http://schemas.android.com/tools"
34
package="rikka.smscodehelper">
45

5-
<uses-permission android:name="android.permission.RECEIVE_SMS"/>
6+
<uses-permission android:name="android.permission.RECEIVE_SMS" />
67

78
<application
8-
android:allowBackup="true"
9+
android:allowBackup="false"
910
android:icon="@mipmap/ic_launcher"
1011
android:label="@string/app_name"
1112
android:supportsRtl="true"
12-
android:theme="@style/AppTheme">
13+
android:theme="@style/AppTheme"
14+
tools:ignore="GoogleAppIndexingWarning">
1315
<activity
1416
android:name=".MainActivity"
17+
android:excludeFromRecents="true"
1518
android:label="@string/app_name"
16-
android:theme="@style/Transparent"
17-
android:excludeFromRecents="true">
19+
android:theme="@style/AppTheme.Transparent">
1820

1921
<intent-filter>
2022
<action android:name="android.intent.action.MAIN" />
2123
<category android:name="android.intent.category.LAUNCHER" />
2224
</intent-filter>
2325
</activity>
2426

25-
<receiver android:name=".receiver.SMSBroadcastReceiver">
26-
<intent-filter android:priority="1000">
27-
<action android:name="android.provider.Telephony.SMS_RECEIVED"/>
27+
<receiver
28+
android:name=".receiver.SMSBroadcastReceiver"
29+
android:permission="android.permission.BROADCAST_SMS">
30+
<intent-filter
31+
android:priority="1000">
32+
<action android:name="android.provider.Telephony.SMS_RECEIVED" />
2833
</intent-filter>
2934
</receiver>
3035
</application>
Original file line numberDiff line numberDiff line change
@@ -1,91 +1,70 @@
11
package rikka.smscodehelper;
22

33
import android.Manifest;
4-
import android.content.DialogInterface;
4+
import android.app.Activity;
5+
import android.app.AlertDialog;
56
import android.content.pm.PackageManager;
67
import android.os.Build;
78
import android.os.Bundle;
8-
import android.support.v4.app.ActivityCompat;
9-
import android.support.v4.content.ContextCompat;
10-
import android.support.v7.app.AlertDialog;
11-
import android.support.v7.app.AppCompatActivity;
129

10+
import androidx.annotation.NonNull;
11+
import androidx.core.app.ActivityCompat;
12+
import androidx.core.content.ContextCompat;
1313

14-
public class MainActivity extends AppCompatActivity {
14+
public class MainActivity extends Activity {
1515

1616
@Override
1717
protected void onCreate(Bundle savedInstanceState) {
1818
super.onCreate(savedInstanceState);
19-
setContentView(R.layout.activity_main);
2019

21-
AlertDialog.Builder builder = new AlertDialog.Builder(this, R.style.DialogStyle);
20+
AlertDialog.Builder builder = new AlertDialog.Builder(this)
21+
.setOnCancelListener(dialog -> finish())
22+
.setCancelable(false);
2223

23-
builder.setOnCancelListener(new DialogInterface.OnCancelListener() {
24-
@Override
25-
public void onCancel(DialogInterface dialog) {
26-
finish();
27-
}
28-
});
29-
30-
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M &&
31-
ContextCompat.checkSelfPermission(this, Manifest.permission.RECEIVE_SMS) != PackageManager.PERMISSION_GRANTED) {
24+
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M
25+
&& ContextCompat.checkSelfPermission(this, Manifest.permission.RECEIVE_SMS) != PackageManager.PERMISSION_GRANTED) {
3226
builder.setMessage(R.string.tip_m);
33-
builder.setPositiveButton(R.string.get_permission, new DialogInterface.OnClickListener() {
34-
@Override
35-
public void onClick(DialogInterface dialog, int which) {
36-
getPermission(Manifest.permission.RECEIVE_SMS);
37-
}
38-
});
27+
builder.setPositiveButton(R.string.get_permission, (dialog, which) -> requestPermission());
28+
builder.setNegativeButton(R.string.exit, (dialog, which) -> finish());
3929
} else {
4030
builder.setMessage(getString(R.string.tip));
41-
builder.setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() {
42-
@Override
43-
public void onClick(DialogInterface dialog, int which) {
44-
hideLauncher();
45-
finish();
46-
}
31+
builder.setPositiveButton(android.R.string.ok, (dialog, which) -> {
32+
hideFromLauncher();
33+
finish();
4734
});
4835
}
4936

50-
AlertDialog alertDialog = builder.create();
51-
alertDialog.setCanceledOnTouchOutside(false);
52-
alertDialog.show();
37+
builder.show();
5338
}
5439

55-
private void getPermission(String permission) {
56-
if (ContextCompat.checkSelfPermission(this, permission) != PackageManager.PERMISSION_GRANTED) {
57-
ActivityCompat.requestPermissions(this, new String[]{permission}, 0);
40+
private void requestPermission() {
41+
if (ContextCompat.checkSelfPermission(this, Manifest.permission.RECEIVE_SMS) != PackageManager.PERMISSION_GRANTED) {
42+
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.RECEIVE_SMS}, 0);
5843
}
5944
}
6045

6146
@Override
62-
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
47+
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
6348
switch (requestCode) {
6449
case 0:
6550
if (grantResults[0] != PackageManager.PERMISSION_GRANTED) {
66-
AlertDialog.Builder builder = new AlertDialog.Builder(this, R.style.DialogStyle);
51+
AlertDialog.Builder builder = new AlertDialog.Builder(this);
6752

68-
builder.setTitle("OAQ");
6953
builder.setMessage(R.string.permission_denied);
70-
builder.setPositiveButton(R.string.exit, new DialogInterface.OnClickListener() {
71-
@Override
72-
public void onClick(DialogInterface dialog, int which) {
73-
finish();
74-
}
75-
});
76-
builder.create().show();
54+
builder.setPositiveButton(R.string.exit, (dialog, which) -> finish());
55+
builder.show();
7756
} else {
57+
hideFromLauncher();
7858
finish();
79-
hideLauncher();
8059
}
8160
break;
8261
default:
8362
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
8463
}
8564
}
8665

87-
private void hideLauncher() {
88-
PackageManager p = getApplicationContext().getPackageManager();
89-
p.setComponentEnabledSetting(getComponentName(), PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);
66+
private void hideFromLauncher() {
67+
PackageManager pm = getApplicationContext().getPackageManager();
68+
pm.setComponentEnabledSetting(getComponentName(), PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);
9069
}
9170
}

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

-8
This file was deleted.
+8-7
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
1-
<resources>>
2-
3-
<style name="AppTheme.NoActionBar">
4-
<item name="windowActionBar">false</item>
5-
<item name="windowNoTitle">true</item>
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<resources>
3+
<style name="AppTheme.Transparent" parent="AppTheme">
4+
<item name="android:windowNoTitle">true</item>
5+
<item name="android:windowBackground">@android:color/transparent</item>
6+
<item name="android:windowIsTranslucent">true</item>
7+
<item name="android:windowIsFloating">true</item>
68
<item name="android:windowDrawsSystemBarBackgrounds">true</item>
7-
<item name="android:statusBarColor">@android:color/transparent</item>
89
</style>
9-
</resources>
10+
</resources>
+1-6
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,9 @@
11
<resources>
22
<string name="app_name">验证码复制器</string>
3-
43
<string name="toast_format" formatted="false">%s 已被复制到剪贴板</string>
5-
64
<string name="tip_m">在 Android 6.0 以上需要由用户授予权限,点击获取后,如果没有权限将弹出授权窗口。\n授权后应用将会从启动器隐藏。</string>
75
<string name="tip">点击确认后应用将会从启动器隐藏。</string>
8-
9-
<string name="get_permission">获取权限</string>
10-
<string name="ok">确认</string>
6+
<string name="get_permission">授予权限</string>
117
<string name="exit">退出</string>
128
<string name="permission_denied">被拒绝了..</string>
13-
149
</resources>
+2-3
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<resources>
33
<string name="app_name">驗證碼複製器</string>
4+
<string name="toast_format">%s 已複製到剪貼簿</string>
45
<string name="exit">退出</string>
5-
<string name="get_permission">取得權限</string>
6-
<string name="ok">確定</string>
6+
<string name="get_permission">授予權限</string>
77
<string name="permission_denied">被拒絕了..</string>
88
<string name="tip">點擊確定後App將會被隱藏</string>
99
<string name="tip_m">"Android 6.0以上需要由使用者授予權限,點擊授予後,如果沒有權限將跳出授權視窗。
1010
授權後App將會被隱藏。"</string>
11-
<string name="toast_format">%s 已複製到剪貼簿</string>
1211
</resources>

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

+1-6
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,9 @@
11
<resources>
22
<string name="app_name">SmsCodeHelper</string>
3-
43
<string name="toast_format" formatted="false">%s has been copied to clipboard.</string>
5-
64
<string name="tip_m">After Android 6.0, permission should be authorized by user.\nApp will be hide from launcher if authorized.</string>
75
<string name="tip">App will be hide from launcher.</string>
8-
9-
<string name="get_permission">GET PERMISSION</string>
10-
<string name="ok">OK</string>
6+
<string name="get_permission">Grant permission</string>
117
<string name="exit">Exit</string>
128
<string name="permission_denied">Denied..</string>
13-
149
</resources>

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

+3-22
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,12 @@
11
<resources>
22

3-
<!-- Base application theme. -->
4-
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
5-
<!-- Customize your theme here. -->
6-
<item name="colorPrimary">@color/colorPrimary</item>
7-
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
8-
<item name="colorAccent">@color/colorAccent</item>
9-
</style>
3+
<style name="AppTheme" parent="android:Theme.DeviceDefault"/>
104

11-
<style name="Transparent" parent="AppTheme">
12-
<item name="windowNoTitle">true</item>
5+
<style name="AppTheme.Transparent" parent="AppTheme">
6+
<item name="android:windowNoTitle">true</item>
137
<item name="android:windowBackground">@android:color/transparent</item>
148
<item name="android:windowIsTranslucent">true</item>
159
<item name="android:windowIsFloating">true</item>
1610
</style>
1711

18-
<style name="DialogStyle" parent="Theme.AppCompat.Light.Dialog">
19-
<item name="colorAccent">@color/colorAccent</item>
20-
</style>
21-
22-
<style name="AppTheme.NoActionBar">
23-
<item name="windowActionBar">false</item>
24-
<item name="windowNoTitle">true</item>
25-
</style>
26-
27-
<style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" />
28-
29-
<style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light" />
30-
3112
</resources>

build.gradle

+3-1
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,11 @@
22

33
buildscript {
44
repositories {
5+
google()
56
jcenter()
67
}
78
dependencies {
8-
classpath 'com.android.tools.build:gradle:1.5.0'
9+
classpath 'com.android.tools.build:gradle:3.2.0-beta05'
910

1011
// NOTE: Do not place your application dependencies here; they belong
1112
// in the individual module build.gradle files
@@ -14,6 +15,7 @@ buildscript {
1415

1516
allprojects {
1617
repositories {
18+
google()
1719
jcenter()
1820
}
1921
}

gradle.properties

+3-1
Original file line numberDiff line numberDiff line change
@@ -15,4 +15,6 @@
1515
# When configured, Gradle will run in incubating parallel mode.
1616
# This option should only be used with decoupled projects. More details, visit
1717
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
18-
# org.gradle.parallel=true
18+
# org.gradle.parallel=true
19+
android.useAndroidX=true
20+
android.enableJetifier=true
+1-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
1-
#Wed Oct 21 11:34:03 PDT 2015
21
distributionBase=GRADLE_USER_HOME
32
distributionPath=wrapper/dists
3+
distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-all.zip
44
zipStoreBase=GRADLE_USER_HOME
55
zipStorePath=wrapper/dists
6-
distributionUrl=https\://services.gradle.org/distributions/gradle-2.8-all.zip

0 commit comments

Comments
 (0)