Skip to content

Commit b0f5237

Browse files
committed
增加基于SharedPreferences实现的简单配置界面
1 parent 2271233 commit b0f5237

File tree

11 files changed

+168
-331
lines changed

11 files changed

+168
-331
lines changed

src/main/java/com/oasisfeng/nevo/decorators/wechat/WeChatDecorator.java

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -333,7 +333,7 @@ else if (conversation.getType() == Conversation.TYPE_UNKNOWN)
333333
n.flags |= Notification.FLAG_ONLY_ALERT_ONCE; // No more alert for direct-replied notification.
334334

335335
// fix for recent (around 20190720) MIUI bugs
336-
if (overridedContentView(n) == null) {
336+
if (overrideContentView && overridedContentView(n) == null) {
337337
n.contentView = overrideContentView(n, new RemoteViews(BuildConfig.APPLICATION_ID, R.layout.wechat_notifition_layout));
338338
}
339339
n.contentView.setTextViewText(R.id.title, title);
@@ -425,8 +425,13 @@ private boolean isWeChatTargeting26OrAbove() {
425425
}
426426
}
427427

428-
@Override public void onCreate() {
429-
super.onCreate();
428+
private boolean overrideContentView;
429+
430+
@Override public void onCreate(SharedPreferences pref) {
431+
super.onCreate(pref);
432+
433+
overrideContentView = pref.getBoolean("decorator_wechat.miui_fix", false);
434+
430435
loadPreferences();
431436
mPrefKeyWear = getString(R.string.pref_wear);
432437

src/main/java/com/oasisfeng/nevo/decorators/wechat/WeChatDecoratorSettingsActivity.java

Lines changed: 0 additions & 148 deletions
This file was deleted.

src/main/java/com/oasisfeng/nevo/decorators/wechat/WeChatDecoratorSettingsReceiver.java

Lines changed: 0 additions & 31 deletions
This file was deleted.

src/main/java/com/oasisfeng/nevo/sdk/NevoDecoratorService.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import android.app.NotificationChannel;
66
import android.app.NotificationManager;
77
import android.content.Context;
8+
import android.content.SharedPreferences;
89
import android.content.pm.PackageManager;
910
import android.os.Bundle;
1011
import android.service.notification.NotificationListenerService;
@@ -176,7 +177,7 @@ protected static boolean hasArchivedNotifications(String key) {
176177
return map.containsKey(key);
177178
}
178179

179-
@Keep public void onCreate() {}
180+
@Keep public void onCreate(SharedPreferences pref) {}
180181
@Keep public void onDestroy() {}
181182

182183

Lines changed: 7 additions & 84 deletions
Original file line numberDiff line numberDiff line change
@@ -1,100 +1,23 @@
11
package com.oasisfeng.nevo.xposed;
22

33
import android.app.Activity;
4-
import android.content.Context;
5-
import android.content.Intent;
6-
import android.content.pm.PackageInfo;
7-
import android.content.pm.PackageManager;
8-
import android.graphics.drawable.Icon;
9-
import android.net.Uri;
4+
import android.app.Fragment;
5+
import android.app.FragmentManager;
106
import android.os.Bundle;
117
import android.util.Log;
12-
import android.view.View;
13-
import android.view.ViewGroup;
14-
import android.widget.BaseAdapter;
15-
import android.widget.ImageView;
16-
import android.widget.ListView;
17-
import android.widget.TextView;
188

199
import java.util.List;
2010

21-
import top.trumeet.common.cache.IconCache;
22-
23-
import com.oasisfeng.nevo.decorators.media.ColorUtil;
24-
2511
public class MainActivity extends Activity {
26-
private static final String NOTIFICATION_ICON = "mipush_notification";
27-
private static final String NOTIFICATION_SMALL_ICON = "mipush_small_notification";
28-
29-
private ListView listView;
30-
private IconCache cache;
3112

3213
@Override
3314
protected void onCreate(Bundle savedInstanceState) {
3415
super.onCreate(savedInstanceState);
35-
listView = new ListView(this);
36-
cache = IconCache.getInstance();
37-
final PackageManager manager = getPackageManager();
38-
final List<PackageInfo> packages = manager.getInstalledPackages(0);
39-
listView.setAdapter(new BaseAdapter() {
40-
@Override
41-
public int getCount() {
42-
return packages.size();
43-
}
44-
45-
@Override
46-
public PackageInfo getItem(int position) {
47-
return packages.get(position);
48-
}
49-
50-
@Override
51-
public long getItemId(int position) {
52-
return packages.get(position).hashCode();
53-
}
54-
55-
@Override
56-
public View getView(int position, View convertView, ViewGroup parent) {
57-
View view = null;
58-
59-
// 如果convertView不为空则复用
60-
if (convertView == null) {
61-
view = View.inflate(MainActivity.this, R.layout.app_info, null);
62-
}else {
63-
view = convertView;
64-
}
65-
66-
PackageInfo info = getItem(position);
67-
// applicationLabel
68-
TextView appName = (TextView) view.findViewById(R.id.appName);
69-
appName.setText(manager.getApplicationLabel(info.applicationInfo));
70-
// applicationIcon
71-
ImageView appIcon = (ImageView) view.findViewById(R.id.appIcon);
72-
appIcon.setImageDrawable(manager.getApplicationIcon(info.applicationInfo));
73-
// applicationLogo
74-
ImageView appLogo = (ImageView) view.findViewById(R.id.appLogo);
75-
appLogo.setImageDrawable(manager.getApplicationLogo(info.applicationInfo));
76-
// smallIcon
77-
ImageView smallIcon = (ImageView) view.findViewById(R.id.smallIcon);
78-
ImageView gen = (ImageView) view.findViewById(R.id.gen);
79-
try {
80-
final Context context = createPackageContext(info.packageName, 0);
81-
int iconId;
82-
if ((iconId = context.getResources().getIdentifier(NOTIFICATION_SMALL_ICON, "drawable", info.packageName)) != 0) // has icon
83-
smallIcon.setImageIcon(Icon.createWithResource(info.packageName, iconId));
84-
else if ((iconId = context.getResources().getIdentifier(NOTIFICATION_ICON, "drawable", info.packageName)) != 0)
85-
smallIcon.setImageIcon(Icon.createWithResource(info.packageName, iconId));
86-
else
87-
smallIcon.setImageIcon(null);
88-
Icon iconCache = cache.getIconCache(context, info.packageName, (ctx, b) -> Icon.createWithBitmap(b));
89-
if (iconCache != null) {
90-
gen.setImageIcon(iconCache);
91-
gen.setColorFilter(cache.getAppColor(context, info.packageName, (ctx, b) -> ColorUtil.getColor(b)[0]));
92-
}
93-
} catch (IllegalArgumentException | PackageManager.NameNotFoundException ign) { Log.d("inspect", "ex " + info.packageName);}
94-
return view;
95-
}
96-
});
97-
setContentView(listView);
16+
setContentView(R.layout.activity_main);
17+
getFragmentManager()
18+
.beginTransaction()
19+
.add(R.id.main_fragment, new MainPreference())
20+
.commit();
9821
}
9922

10023
}

0 commit comments

Comments
 (0)