Fixed notification error and warning fixes

This commit is contained in:
PeratX 2017-05-13 16:07:43 +08:00
parent be7ab36d13
commit 509fbd6293
6 changed files with 58 additions and 11 deletions

View File

@ -42,9 +42,6 @@ android {
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:25.3.1'
compile 'com.android.support:design:25.3.1'

View File

@ -10,6 +10,7 @@ import android.content.pm.PackageManager;
import android.content.pm.ShortcutInfo;
import android.content.pm.ShortcutManager;
import android.graphics.drawable.Icon;
import android.net.Uri;
import android.os.Build;
import android.preference.PreferenceManager;
import android.support.v4.app.ActivityCompat;
@ -27,7 +28,7 @@ import org.itxtech.daedalus.util.RulesResolver;
import java.io.File;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
/**
@ -79,7 +80,7 @@ public class Daedalus extends Application {
public static String hostsPath;
public static String dnsmasqPath;
public static String configPath;
private static String configPath;
private static Daedalus instance = null;
private static SharedPreferences prefs;
@ -118,7 +119,7 @@ public class Daedalus extends Application {
}
public static final int REQUEST_EXTERNAL_STORAGE = 1;
public static String[] PERMISSIONS_STORAGE = {
public static final String[] PERMISSIONS_STORAGE = {
Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.WRITE_EXTERNAL_STORAGE
};
@ -218,14 +219,20 @@ public class Daedalus extends Application {
.setLongLabel(notice)
.setShortLabel(notice)
.setIcon(Icon.createWithResource(context, R.mipmap.ic_launcher))
.setIntent(new Intent(context, MainActivity.class).setAction(Intent.ACTION_VIEW).putExtra(MainActivity.LAUNCH_ACTION, activate ? MainActivity.LAUNCH_ACTION_ACTIVATE : MainActivity.LAUNCH_ACTION_DEACTIVATE))
.setIntent(new Intent(context, MainActivity.class).setAction(Intent.ACTION_VIEW)
.putExtra(MainActivity.LAUNCH_ACTION, activate ? MainActivity.LAUNCH_ACTION_ACTIVATE : MainActivity.LAUNCH_ACTION_DEACTIVATE))
.build();
ShortcutManager shortcutManager = (ShortcutManager) context.getSystemService(SHORTCUT_SERVICE);
shortcutManager.addDynamicShortcuts(Arrays.asList(info));
shortcutManager.addDynamicShortcuts(Collections.singletonList(info));
}
}
public static void donate() {
instance.startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("https://qr.alipay.com/a6x07022gffiehykicipv1a"))
.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK));
}
public static Daedalus getInstance() {
return instance;
}

View File

@ -304,7 +304,7 @@ public class MainActivity extends AppCompatActivity implements NavigationView.On
}
@Override
public boolean onNavigationItemSelected(MenuItem item) {
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
// Handle navigation view item clicks here.
int id = item.getItemId();

View File

@ -2,11 +2,13 @@ package org.itxtech.daedalus.fragment;
import android.app.Activity;
import android.app.Fragment;
import android.content.DialogInterface;
import android.content.Intent;
import android.net.VpnService;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.v7.app.AlertDialog;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
@ -83,6 +85,36 @@ public class MainFragment extends Fragment {
} else {
onActivityResult(0, Activity.RESULT_OK, null);
}
long activateCounter = Daedalus.configurations.getActivateCounter();
if (activateCounter == -1) {
return;
}
activateCounter++;
Daedalus.configurations.setActivateCounter(activateCounter);
if (activateCounter % 20 == 0) {
new AlertDialog.Builder(getActivity())
.setTitle("觉得还不错?")
.setMessage("您的支持是我动力来源!\n请考虑为我买杯咖啡醒醒脑甚至其他…… ;)")
.setPositiveButton("为我买杯咖啡", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Daedalus.donate();
new AlertDialog.Builder(getActivity())
.setMessage("感谢您的支持!;)\n我会再接再厉")
.setPositiveButton("确认", null)
.show();
}
})
.setNeutralButton("不再显示", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Daedalus.configurations.setActivateCounter(-1);
}
})
.setNegativeButton("取消", null)
.show();
}
}
public void onActivityResult(int request, int result, Intent data) {

View File

@ -234,8 +234,9 @@ public class DaedalusVpnService extends VpnService implements Runnable {
long time = System.currentTimeMillis();
if (time - lastUpdate >= 1000) {
lastUpdate = time;
Log.i(TAG, "notify");
notification.setContentTitle(getResources().getString(R.string.notification_queries) + " " + String.valueOf(provider.getDnsQueryTimes()));
if (notification != null) {
notification.setContentTitle(getResources().getString(R.string.notification_queries) + " " + String.valueOf(provider.getDnsQueryTimes()));
}
NotificationManager manager = (NotificationManager) this.getSystemService(Context.NOTIFICATION_SERVICE);
manager.notify(NOTIFICATION_ACTIVATED, notification.build());

View File

@ -30,6 +30,8 @@ public class Configurations {
private int totalId;
private long activateCounter;
int getNextId() {
if (totalId < CUSTOM_DNS_ID_START) {
totalId = CUSTOM_DNS_ID_START;
@ -37,6 +39,14 @@ public class Configurations {
return totalId++;
}
public long getActivateCounter() {
return activateCounter;
}
public void setActivateCounter(long activateCounter) {
this.activateCounter = activateCounter;
}
public ArrayList<CustomDnsServer> getCustomDnsServers() {
if (customDnsServers == null) {
customDnsServers = new ArrayList<>();