version:2.7

fix:
update:修改推送,增加视频和日常应用
This commit is contained in:
2023-03-23 09:29:01 +08:00
parent 38579282b7
commit cd71ed6619
65 changed files with 1534 additions and 389 deletions

View File

@@ -1,9 +0,0 @@
package com.uiuios.aios;
import java.io.Serializable;
public class AppInfo implements Serializable {
private static final long serialVersionUID = -5488458740561098181L;
}

View File

@@ -726,7 +726,7 @@ public class ControlActivity extends AppCompatActivity {
}
private void getLocation() {
String addr = MMKV.defaultMMKV().decodeString(CommonConfig.MAP_ADDRESS_KEY);
String addr = MMKV.mmkvWithID(CommonConfig.MMKV_ID, MMKV.MULTI_PROCESS_MODE).decodeString(CommonConfig.MAP_ADDRESS_KEY);
if (TextUtils.isEmpty(addr)) {
tv_location.setText("未知");

View File

@@ -0,0 +1,66 @@
package com.uiuios.aios.activity;
import android.content.res.Configuration;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.uiuios.aios.R;
import com.uiuios.aios.adapter.DailyAppAdapter;
import com.uiuios.aios.base.BaseActivity;
import com.uiuios.aios.bean.DailyAppBean;
import com.uiuios.aios.manager.AppStatusManager;
import com.uiuios.aios.view.GridSpaceItemDecoration;
import java.util.List;
import butterknife.BindView;
import butterknife.ButterKnife;
public class DailyAppActivity extends BaseActivity {
private static final String TAG = DailyAppActivity.class.getSimpleName();
private DailyAppAdapter mDailyAppAdapter;
@BindView(R.id.recyclerView)
RecyclerView recyclerView;
@BindView(R.id.iv_back)
ImageView iv_back;
@BindView(R.id.tv_appsize)
TextView tv_appsize;
@Override
public int getLayoutId() {
return R.layout.activity_dailyapp;
}
@Override
public void initView() {
ButterKnife.bind(this);
mDailyAppAdapter = new DailyAppAdapter();
if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) {
recyclerView.setLayoutManager(new GridLayoutManager(this, 5));
recyclerView.addItemDecoration(new GridSpaceItemDecoration(5, 50, 50));
} else {
recyclerView.setLayoutManager(new GridLayoutManager(this, 3));
recyclerView.addItemDecoration(new GridSpaceItemDecoration(3, 50, 50));
}
recyclerView.setAdapter(mDailyAppAdapter);
iv_back.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
finish();
}
});
}
@Override
public void initData() {
List<DailyAppBean> appBeanList = AppStatusManager.getInstance().getPackageList();
mDailyAppAdapter.setDailyAppBeans(appBeanList);
tv_appsize.setText(String.format(getString(R.string.app_size), appBeanList.size()));
}
}

View File

@@ -96,7 +96,7 @@ public class EmergencyActivity extends AppCompatActivity {
tv_countdown.setText("倒计时(" + (time - aLong - 1) + ")秒");
Log.e(TAG, "accept: " + (time - aLong - 1));
} else {
MMKV mmkv = MMKV.defaultMMKV();
MMKV mmkv = MMKV.mmkvWithID(CommonConfig.MMKV_ID, MMKV.MULTI_PROCESS_MODE);
String longitude = mCacheHelper.getAsString(CommonConfig.MAP_LONGITUDE_KEY);
String latitude = mCacheHelper.getAsString(CommonConfig.MAP_LATITUDE_KEY);
String address = mCacheHelper.getAsString(CommonConfig.MAP_ADDRESS_KEY);

View File

@@ -15,7 +15,8 @@ import com.uiuios.aios.R;
import com.uiuios.aios.adapter.AlarmAdapter;
import com.uiuios.aios.base.BaseActivity;
import com.uiuios.aios.bean.AlarmClockData;
import com.uiuios.aios.tpush.MessageReceiver;
import com.uiuios.aios.push.PushManager;
import com.uiuios.aios.push.tpush.MessageReceiver;
import com.uiuios.aios.utils.ToastUtil;
import java.util.List;
@@ -95,7 +96,7 @@ public class AlarmClockActivity extends BaseActivity implements AlarmClockContac
}
IntentFilter filter = new IntentFilter();
filter.setPriority(IntentFilter.SYSTEM_HIGH_PRIORITY);
filter.addAction(MessageReceiver.SET_ALARMCLOCK);
filter.addAction(PushManager.SET_ALARMCLOCK);
registerReceiver(mAlarmClockReceiver, filter);
}
@@ -107,7 +108,7 @@ public class AlarmClockActivity extends BaseActivity implements AlarmClockContac
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
Log.e(TAG, "onReceive: " + action);
if (MessageReceiver.SET_ALARMCLOCK.equals(action)) {
if (PushManager.SET_ALARMCLOCK.equals(action)) {
mPresenter.getAlarmClock();
}
}

View File

@@ -10,6 +10,7 @@ import com.trello.rxlifecycle4.RxLifecycle;
import com.trello.rxlifecycle4.android.ActivityEvent;
import com.uiuios.aios.bean.BaseResponse;
import com.uiuios.aios.bean.Contact;
import com.uiuios.aios.config.CommonConfig;
import com.uiuios.aios.network.NetInterfaceManager;
import com.uiuios.aios.network.URLAddress;
import com.uiuios.aios.utils.GsonUtils;
@@ -26,7 +27,7 @@ import io.reactivex.rxjava3.subjects.BehaviorSubject;
public class ContactPresenter implements ContactContact.Presenter {
private Context mContext;
private ContactContact.ContactView mView;
private MMKV mMMKV = MMKV.defaultMMKV();
private MMKV mMMKV = MMKV.mmkvWithID(CommonConfig.MMKV_ID, MMKV.MULTI_PROCESS_MODE);
private BehaviorSubject<ActivityEvent> lifecycle;

View File

@@ -75,8 +75,6 @@ public class MainActivity extends BaseActivity implements MainContact.MainView {
private int appListIndex = 1;
private int defaultCurrent = 0;
private HomeWatcher mHomeWatcher;
@Override
public int getLayoutId() {
return R.layout.activity_main;
@@ -147,28 +145,13 @@ public class MainActivity extends BaseActivity implements MainContact.MainView {
if (mFragments.size() > 1) {
mViewPager.setCurrentItem(defaultCurrent);
}
mHomeWatcher = new HomeWatcher(this);
mHomeWatcher.setOnHomePressedListener(new HomeWatcher.OnHomePressedListener() {
@Override
public void onHomePressed() {
//按了HOME键
Log.e(TAG, "onHomePressed: ");
}
@Override
public void onHomeLongPressed() {
Log.e(TAG, "onHomeLongPressed: ");
//长按HOME键
}
});
mHomeWatcher.startWatch();
}
@Override
public void initData() {
registmNewAppReceiver();
registerSOSNumberReceiver();
registerUpdateDesktopReceiver();
mAlarmServiceConnection = new ServiceConnection() {
@Override
public void onServiceConnected(ComponentName name, IBinder service) {
@@ -392,8 +375,8 @@ public class MainActivity extends BaseActivity implements MainContact.MainView {
if (mNewAppReceiver != null) {
unregisterReceiver(mNewAppReceiver);
}
if (mHomeWatcher != null) {
mHomeWatcher.stopWatch();// 在销毁时停止监听,不然会报错的。
if (updateDesktopReceiver != null) {
unregisterReceiver(updateDesktopReceiver);
}
}
@@ -446,6 +429,30 @@ public class MainActivity extends BaseActivity implements MainContact.MainView {
}
}
public static final String ACTION_PACKAGE_HIDE = "com.uiui.aios.ACTION_PACKAGE_HIDE";
private UpdateDesktopReceiver updateDesktopReceiver;
private void registerUpdateDesktopReceiver() {
if (updateDesktopReceiver == null) {
updateDesktopReceiver = new UpdateDesktopReceiver();
}
IntentFilter filter = new IntentFilter();
filter.setPriority(IntentFilter.SYSTEM_HIGH_PRIORITY);
filter.addAction("UPDATE_DESKTOP_ICON");
filter.addAction(ACTION_PACKAGE_HIDE);
registerReceiver(updateDesktopReceiver, filter);
}
class UpdateDesktopReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Log.e(TAG, "onReceive: " + intent.getAction());
addData();
}
}
@Override
public void setSystemSettings() {
// mMainPresenter.getDesktopLayout();

View File

@@ -11,6 +11,7 @@ import com.qweather.sdk.bean.weather.WeatherDailyBean;
import com.qweather.sdk.view.QWeather;
import com.tencent.mmkv.MMKV;
import com.trello.rxlifecycle4.android.ActivityEvent;
import com.uiuios.aios.config.CommonConfig;
import com.uiuios.aios.manager.RemoteManager;
import java.lang.reflect.Type;
@@ -27,7 +28,7 @@ public class WeatherPresenter implements WeatherContact.Presenter {
private static final String WEATHER_DAILY_KEY = "WEATHER_DAILY_JSON_STRING";
private WeatherContact.WeatherView mView;
private Context mContext;
private MMKV mMMKV = MMKV.defaultMMKV();
private MMKV mMMKV = MMKV.mmkvWithID(CommonConfig.MMKV_ID, MMKV.MULTI_PROCESS_MODE);
private BehaviorSubject<ActivityEvent> lifecycle;

View File

@@ -16,6 +16,7 @@ import com.tencent.mmkv.MMKV;
import com.uiuios.aios.R;
import com.uiuios.aios.activity.QuickAppActivity;
import com.uiuios.aios.bean.AppSelectBean;
import com.uiuios.aios.config.CommonConfig;
import java.util.List;
@@ -26,7 +27,7 @@ public class AppSelectedAdapter extends RecyclerView.Adapter<AppSelectedAdapter.
private List<AppSelectBean> mAppSelectBeans;
private int unselectedStatus = -1;
private int selecedPosition = unselectedStatus;
private MMKV mMMKV = MMKV.defaultMMKV();
private MMKV mMMKV = MMKV.mmkvWithID(CommonConfig.MMKV_ID, MMKV.MULTI_PROCESS_MODE);
public void setAppSelectBeans(List<AppSelectBean> appSelectBeanList) {
this.mAppSelectBeans = appSelectBeanList;

View File

@@ -0,0 +1,146 @@
package com.uiuios.aios.adapter;
import android.content.Context;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.constraintlayout.widget.ConstraintLayout;
import androidx.recyclerview.widget.RecyclerView;
import com.google.gson.JsonObject;
import com.uiuios.aios.R;
import com.uiuios.aios.bean.BaseResponse;
import com.uiuios.aios.bean.DailyAppBean;
import com.uiuios.aios.dialog.DailyAppDialog;
import com.uiuios.aios.manager.AppStatusManager;
import com.uiuios.aios.network.NetInterfaceManager;
import com.uiuios.aios.utils.ApkUtils;
import com.uiuios.aios.utils.AppUsedTimeUtils;
import java.util.List;
import io.reactivex.rxjava3.core.Observer;
import io.reactivex.rxjava3.disposables.Disposable;
public class DailyAppAdapter extends RecyclerView.Adapter<DailyAppAdapter.Holder> {
private static final String TAG = DailyAppAdapter.class.getSimpleName();
private Context mContext;
private List<DailyAppBean> mDailyAppBeans;
public void setDailyAppBeans(List<DailyAppBean> appSelectBeanList) {
this.mDailyAppBeans = appSelectBeanList;
notifyDataSetChanged();
}
@NonNull
@Override
public Holder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
mContext = parent.getContext();
return new Holder(LayoutInflater.from(mContext).inflate(R.layout.item_daily_app, parent, false));
}
@Override
public void onBindViewHolder(@NonNull Holder holder, int position) {
DailyAppBean dailyAppBean = mDailyAppBeans.get(position);
holder.iv_icon.setImageDrawable(dailyAppBean.getIcon());
holder.tv_name.setText(dailyAppBean.getAppName());
holder.root.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View view) {
showDialog(dailyAppBean);
return false;
}
});
holder.root.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
ApkUtils.openPackage(mContext, dailyAppBean.getPackageName(), dailyAppBean.getClassName());
AppUsedTimeUtils.getInstance().setAppPackageName(dailyAppBean.getPackageName());
AppUsedTimeUtils.getInstance().setStartTime(System.currentTimeMillis());
SendRunningApp(mContext);
}
});
}
private void SendRunningApp(Context context) {
String packageName = AppUsedTimeUtils.getInstance().getAppPackageName();
long time = AppUsedTimeUtils.getInstance().getStartTime();
JsonObject jsonObject = new JsonObject();
jsonObject.addProperty("app_package", packageName);
jsonObject.addProperty("version_name", ApkUtils.getAPPVersionName(context, packageName));
jsonObject.addProperty("start_time", time / 1000);
String jsonString = jsonObject.toString();
Log.e(TAG, "SendRunningApp: " + jsonString);
NetInterfaceManager.getInstance()
.getRunningAppObservable(jsonString)
.subscribe(new Observer<BaseResponse>() {
@Override
public void onSubscribe(Disposable d) {
Log.e("SendRunningApp", "onSubscribe: ");
}
@Override
public void onNext(BaseResponse baseResponse) {
Log.e("SendRunningApp", "onSubscribe: " + baseResponse);
}
@Override
public void onError(Throwable e) {
Log.e("SendRunningApp", "onError: " + e.getMessage());
onComplete();
}
@Override
public void onComplete() {
Log.e("SendRunningApp", "onComplete: ");
}
});
}
private void showDialog(DailyAppBean dailyAppBean) {
DailyAppDialog dailyAppDialog = new DailyAppDialog(mContext);
dailyAppDialog.setTitle("放到桌面");
dailyAppDialog.setMessage(dailyAppBean.getAppName());
dailyAppDialog.setIconImage(dailyAppBean.getIcon());
dailyAppDialog.setOnClickBottomListener(new DailyAppDialog.OnClickBottomListener() {
@Override
public void onPositiveClick() {
AppStatusManager.getInstance().removeHidedApp(dailyAppBean.getPackageName());
mDailyAppBeans.remove(dailyAppBean);
notifyDataSetChanged();
dailyAppDialog.dismiss();
}
@Override
public void onNegtiveClick() {
dailyAppDialog.dismiss();
}
});
dailyAppDialog.show();
}
@Override
public int getItemCount() {
return mDailyAppBeans == null ? 0 : mDailyAppBeans.size();
}
static class Holder extends RecyclerView.ViewHolder {
ConstraintLayout root;
ImageView iv_icon;
TextView tv_name;
Holder(@NonNull View itemView) {
super(itemView);
root = itemView.findViewById(R.id.root);
iv_icon = itemView.findViewById(R.id.iv_icon);
tv_name = itemView.findViewById(R.id.tv_name);
}
}
}

View File

@@ -70,14 +70,14 @@ public class WeatherDayApdapter extends RecyclerView.Adapter<WeatherDayApdapter.
switch (iconDay) {
case "100":
case "150":
holder.iv_bg.setImageDrawable(ContextCompat.getDrawable(mContext, R.drawable.background_weather_sun));
holder.iv_bg.setImageDrawable(ContextCompat.getDrawable(mContext, R.drawable.background_weather_sun1));
break;
case "102":
case "152":
holder.iv_bg.setImageDrawable(ContextCompat.getDrawable(mContext, R.drawable.background_weather_sunny));
holder.iv_bg.setImageDrawable(ContextCompat.getDrawable(mContext, R.drawable.background_weather_sunny1));
break;
default:
holder.iv_bg.setImageDrawable(ContextCompat.getDrawable(mContext, R.drawable.background_weather_rain));
holder.iv_bg.setImageDrawable(ContextCompat.getDrawable(mContext, R.drawable.background_weather_rain1));
}
holder.iv_weather.setImageDrawable(getWeatherDrawable(iconDay));
}

View File

@@ -6,8 +6,12 @@ import android.content.Context;
import android.content.Intent;
import android.os.Handler;
import android.os.Looper;
import android.text.TextUtils;
import android.util.Log;
import com.alibaba.sdk.android.push.CloudPushService;
import com.alibaba.sdk.android.push.CommonCallback;
import com.alibaba.sdk.android.push.noonesdk.PushServiceFactory;
import com.arialyy.aria.core.Aria;
import com.qweather.sdk.view.HeConfig;
import com.tencent.android.tpush.XGIOperateCallback;
@@ -16,9 +20,11 @@ import com.tencent.android.tpush.XGPushManager;
import com.tencent.mmkv.MMKV;
import com.uiuios.aios.BuildConfig;
import com.uiuios.aios.alarm.AlarmUtils;
import com.uiuios.aios.manager.AppStatusManager;
import com.uiuios.aios.manager.ConnectManager;
import com.uiuios.aios.manager.RemoteManager;
import com.uiuios.aios.network.NetInterfaceManager;
import com.uiuios.aios.push.PushManager;
import com.uiuios.aios.service.main.MainService;
import com.uiuios.aios.utils.AppUsedTimeUtils;
import com.uiuios.aios.utils.JGYUtils;
@@ -30,36 +36,22 @@ import java.util.List;
public class BaseApplication extends Application {
private static final String TAG = BaseApplication.class.getSimpleName();
@SuppressLint("StaticFieldLeak")
public static Context context;
@SuppressLint("StaticFieldLeak")
private static BaseApplication instance;
public static Context getAppContext() {
return context;
}
// 单例模式中获取唯一的ExitApplication实例
public static BaseApplication getInstance() {
if (null == instance) {
instance = new BaseApplication();
}
return instance;
}
@Override
public void onCreate() {
super.onCreate();
context = this;
if (!BuildConfig.DEBUG) {
catchException();
}
String rootDir = MMKV.initialize(this);
Log.e(TAG, "mmkv root: " + rootDir);
tpushInit();
aliyunPushInit();
PushManager.init(this);
Aria.init(this);
Aria.get(this).getDownloadConfig().setMaxTaskNum(1);
Aria.get(this).getDownloadConfig().setConvertSpeed(true);
tpushInit();
AppUsedTimeUtils.init(this);
AlarmUtils.init(this);
HeConfig.init("HE2210211540591362", "fe42a7bb59b14eefb27eea4fb2c40e99");
@@ -67,6 +59,7 @@ public class BaseApplication extends Application {
HeConfig.switchToDevService();
RemoteManager.init(this);
ConnectManager.init(this);
AppStatusManager.init(this);
NetInterfaceManager.init(this);
JGYUtils.init(this);
startService(new Intent(this, MainService.class));
@@ -101,6 +94,51 @@ public class BaseApplication extends Application {
});
}
private void aliyunPushInit() {
PushServiceFactory.init(this);
final CloudPushService pushService = PushServiceFactory.getCloudPushService();
pushService.setLogLevel(CloudPushService.LOG_DEBUG);
pushService.register(this, new CommonCallback() {
@Override
public void onSuccess(String response) {
Log.e("AliyunPush", "init cloudchannel success");
Log.e("AliyunPush", "init cloudchannel success " + pushService.getDeviceId());
}
@Override
public void onFailed(String errorCode, String errorMessage) {
Log.e("AliyunPush", "init cloudchannel failed -- errorcode:" + errorCode + " -- errorMessage:" + errorMessage);
}
});
String sn = Utils.getSerial();
if (TextUtils.isEmpty(sn)) {
return;
}
pushService.bindAccount(sn, new CommonCallback() {
@Override
public void onSuccess(String s) {
Log.e("AliyunPush", "bind account " + sn + " success\n");
}
@Override
public void onFailed(String errorCode, String errorMsg) {
Log.e("AliyunPush", "bind account " + sn + " failed." +
"errorCode: " + errorCode + ", errorMsg:" + errorMsg);
}
});
pushService.addAlias(sn, new CommonCallback() {
@Override
public void onSuccess(String s) {
Log.e("AliyunPush", "add alias " + sn + " success\n");
}
@Override
public void onFailed(String errorCode, String errorMsg) {
Log.e("AliyunPush", "add alias " + sn + " failed." +
"errorCode: " + errorCode + ", errorMsg:" + errorMsg + "\n");
}
});
}
private void catchException() {
Thread.setDefaultUncaughtExceptionHandler(

View File

@@ -0,0 +1,53 @@
package com.uiuios.aios.bean;
import android.graphics.drawable.Drawable;
import java.io.Serializable;
public class DailyAppBean implements Serializable {
private static final long serialVersionUID = 5054284058523960678L;
String appName;
String packageName;
String className;
Drawable icon;
public DailyAppBean(String appName, String packageName, String className, Drawable icon) {
this.appName = appName;
this.packageName = packageName;
this.className = className;
this.icon = icon;
}
public String getAppName() {
return appName;
}
public void setAppName(String appName) {
this.appName = appName;
}
public String getPackageName() {
return packageName;
}
public void setPackageName(String packageName) {
this.packageName = packageName;
}
public String getClassName() {
return className;
}
public void setClassName(String className) {
this.className = className;
}
public Drawable getIcon() {
return icon;
}
public void setIcon(Drawable icon) {
this.icon = icon;
}
}

View File

@@ -1,6 +1,8 @@
package com.uiuios.aios.config;
public class CommonConfig {
public static final String MMKV_ID = "InterProcessKV";
public static final String MAP_LOCATION_JSON_KEY = "MAPLOCATION_JSON_STRING";
public static final String MAP_LONGITUDE_KEY = "map_longitude_key";
public static final String MAP_LATITUDE_KEY = "map_latitude_key";

View File

@@ -67,7 +67,7 @@ public class CustomDialog extends AlertDialog {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.custom_dialog);
setContentView(R.layout.dialog_custom);
//按空白处不能取消动画
setCanceledOnTouchOutside(false);
//初始化界面控件

View File

@@ -0,0 +1,222 @@
package com.uiuios.aios.dialog;
import android.content.Context;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.appcompat.app.AlertDialog;
import com.uiuios.aios.R;
/**
* description:自定义dialog
*/
public class DailyAppDialog extends AlertDialog {
/**
* 显示的标题
*/
private TextView titleTv;
/**
* 显示的消息
*/
private TextView messageTv;
/**
* 确认和取消按钮
*/
private TextView positiveBn;
private TextView negtiveBn;
private ImageView ivIcon;
private Context mContext;
public DailyAppDialog(Context context) {
super(context, R.style.CustomDialog);
this.mContext = context;
}
/**
* 都是内容数据
*/
private String message;
private String title;
private String positive, negtive;
private Drawable mDrawable;
/**
* 底部是否只有一个按钮
*/
private boolean isSingle = false;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.dialog_daily_app);
//按空白处不能取消动画
setCanceledOnTouchOutside(false);
//初始化界面控件
initView();
//初始化界面数据
refreshView();
//初始化界面控件的事件
initEvent();
}
/**
* 初始化界面的确定和取消监听器
*/
private void initEvent() {
//设置确定按钮被点击后,向外界提供监听
positiveBn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (onClickBottomListener != null) {
onClickBottomListener.onPositiveClick();
}
}
});
//设置取消按钮被点击后,向外界提供监听
negtiveBn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (onClickBottomListener != null) {
onClickBottomListener.onNegtiveClick();
}
}
});
}
/**
* 初始化界面控件的显示数据
*/
private void refreshView() {
//如果用户自定了title和message
if (!TextUtils.isEmpty(title)) {
titleTv.setText(title);
titleTv.setVisibility(View.VISIBLE);
} else {
titleTv.setVisibility(View.GONE);
}
if (!TextUtils.isEmpty(message)) {
messageTv.setText(message);
}
//如果设置按钮的文字
if (!TextUtils.isEmpty(positive)) {
positiveBn.setText(positive);
} else {
positiveBn.setText("确定");
}
if (!TextUtils.isEmpty(negtive)) {
negtiveBn.setText(negtive);
} else {
negtiveBn.setText("取消");
}
ivIcon.setImageDrawable(mDrawable);
}
@Override
public void show() {
super.show();
refreshView();
}
/**
* 初始化界面控件
*/
private void initView() {
negtiveBn = findViewById(R.id.negtive);
positiveBn = findViewById(R.id.positive);
titleTv = findViewById(R.id.title);
messageTv = findViewById(R.id.message);
ivIcon = findViewById(R.id.iv_icon);
}
/**
* 设置确定取消按钮的回调
*/
private OnClickBottomListener onClickBottomListener;
public void setOnClickBottomListener(OnClickBottomListener onClickBottomListener) {
this.onClickBottomListener = onClickBottomListener;
}
public interface OnClickBottomListener {
/**
* 点击确定按钮事件
*/
void onPositiveClick();
/**
* 点击取消按钮事件
*/
void onNegtiveClick();
}
public String getMessage() {
return message;
}
public DailyAppDialog setMessage(String message) {
this.message = message;
return this;
}
public String getTitle() {
return title;
}
public DailyAppDialog setTitle(String title) {
this.title = title;
return this;
}
public String getPositive() {
return positive;
}
public DailyAppDialog setPositive(String positive) {
this.positive = positive;
return this;
}
public String getNegtive() {
return negtive;
}
public DailyAppDialog setNegtive(String negtive) {
this.negtive = negtive;
return this;
}
public DailyAppDialog setNegtiveText(String negtive) {
negtiveBn.setText(negtive);
return this;
}
public boolean isSingle() {
return isSingle;
}
public DailyAppDialog setSingle(boolean single) {
isSingle = single;
return this;
}
public DailyAppDialog setIconImage(Drawable drawable) {
this.mDrawable = drawable;
return this;
}
@Override
public void dismiss() {
super.dismiss();
}
}

View File

@@ -69,7 +69,7 @@ public class PasswordDialog extends AlertDialog {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.password_dialog);
setContentView(R.layout.dialog_password);
//按空白处不能取消动画
setCanceledOnTouchOutside(false);
//初始化界面控件

View File

@@ -67,7 +67,7 @@ public class SingleDialog extends AlertDialog {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.single_dialog);
setContentView(R.layout.dialog_single);
//按空白处不能取消动画
setCanceledOnTouchOutside(false);
//初始化界面控件

View File

@@ -9,6 +9,7 @@ import android.util.Log;
import com.jakewharton.disklrucache.DiskLruCache;
import com.tencent.mmkv.BuildConfig;
import com.tencent.mmkv.MMKV;
import com.uiuios.aios.config.CommonConfig;
import org.json.JSONArray;
import org.json.JSONException;
@@ -31,7 +32,7 @@ import java.io.Serializable;
public class CacheHelper {
private static final String TAG = CacheHelper.class.getSimpleName();
private MMKV mMMKV = MMKV.defaultMMKV();
private MMKV mMMKV = MMKV.mmkvWithID(CommonConfig.MMKV_ID, MMKV.MULTI_PROCESS_MODE);
private static final String DIR_NAME = "diskCache";
private static final int MAX_COUNT = 5 * 1024 * 1024;

View File

@@ -22,11 +22,13 @@ import com.google.gson.JsonObject;
import com.trello.rxlifecycle4.RxLifecycle;
import com.trello.rxlifecycle4.android.FragmentEvent;
import com.uiuios.aios.R;
import com.uiuios.aios.activity.DailyAppActivity;
import com.uiuios.aios.activity.code.FamilySpaceActivity;
import com.uiuios.aios.base.BaseFragment;
import com.uiuios.aios.bean.BaseResponse;
import com.uiuios.aios.bean.DesktopIcon;
import com.uiuios.aios.dialog.CustomDialog;
import com.uiuios.aios.manager.AppStatusManager;
import com.uiuios.aios.network.NetInterfaceManager;
import com.uiuios.aios.service.NotificationService;
import com.uiuios.aios.utils.ApkUtils;
@@ -138,19 +140,29 @@ public class AppListFragment extends BaseFragment {
String pkg = desktopIcon.getPackageName();
Log.e(TAG, "getView: " + pkg);
int i = IconUtils.appClassNameList.indexOf(pkg);
int size = NotificationService.getNotificationLength(pkg);
if (size == 0) {
bg.setVisibility(View.GONE);
} else if (size < 99) {
bg.setVisibility(View.VISIBLE);
bg.setText(String.valueOf(size));
} else {
bg.setVisibility(View.VISIBLE);
bg.setText("99+");
}
if ("aios.daily.app".equals(pkg)) {
int appSize = AppStatusManager.getInstance().getPackageList().size();
if (appSize == 0) {
bg.setVisibility(View.GONE);
} else {
bg.setVisibility(View.VISIBLE);
bg.setText(String.valueOf(appSize));
}
}
if (i != -1) {
String val = IconUtils.appIconList.get(i);
int resID = getActivity().getResources().getIdentifier(val, "drawable", "com.uiuios.aios");
int size = NotificationService.getNotificationLength(pkg);
if (size == 0) {
bg.setVisibility(View.GONE);
} else if (size < 99) {
bg.setVisibility(View.VISIBLE);
bg.setText(String.valueOf(size));
} else {
bg.setVisibility(View.VISIBLE);
bg.setText("99+");
}
if (resID == 0) {
Log.e(TAG, "getView: not found src : " + pkg);
iv.setImageDrawable(desktopIcon.getIcon());
@@ -183,9 +195,13 @@ public class AppListFragment extends BaseFragment {
if (desktopIcon != null) {
Log.e(TAG, "onItemClick: " + desktopIcon.getPackageName());
switch (desktopIcon.getPackageName()) {
case "aios.daily.app":
startActivity(new Intent(mContext, DailyAppActivity.class));
break;
case "aios.exit":
case "aios.family":
startActivity(new Intent(mContext, FamilySpaceActivity.class));
// startActivity(new Intent(mContext, FamilySpaceActivity.class));
ApkUtils.openApp(mContext, "com.uiui.videoplayer");
break;
case "com.android.dialer":
int qch_call_forbid = Settings.System.getInt(mContext.getContentResolver(), "aole_call_forbid", 0);

View File

@@ -65,13 +65,15 @@ import com.uiuios.aios.bean.AlarmItem;
import com.uiuios.aios.bean.Contact;
import com.uiuios.aios.bean.HealthCode;
import com.uiuios.aios.bean.SnInfo;
import com.uiuios.aios.config.CommonConfig;
import com.uiuios.aios.dialog.PasswordDialog;
import com.uiuios.aios.dialog.SingleDialog;
import com.uiuios.aios.disklrucache.CacheHelper;
import com.uiuios.aios.manager.RemoteManager;
import com.uiuios.aios.network.NetInterfaceManager;
import com.uiuios.aios.network.URLAddress;
import com.uiuios.aios.tpush.MessageReceiver;
import com.uiuios.aios.push.PushManager;
import com.uiuios.aios.push.tpush.MessageReceiver;
import com.uiuios.aios.utils.ApkUtils;
import com.uiuios.aios.utils.AppUtil;
import com.uiuios.aios.utils.BitmapUtils;
@@ -225,7 +227,7 @@ public class CustomFragment extends BaseFragment implements CustomContact.Custom
mParam1 = getArguments().getString(ARG_PARAM1);
mParam2 = getArguments().getString(ARG_PARAM2);
}
mMMKV = MMKV.defaultMMKV();
mMMKV = MMKV.mmkvWithID(CommonConfig.MMKV_ID, MMKV.MULTI_PROCESS_MODE);
}
@Override
@@ -312,7 +314,7 @@ public class CustomFragment extends BaseFragment implements CustomContact.Custom
}
IntentFilter filter = new IntentFilter();
filter.setPriority(IntentFilter.SYSTEM_HIGH_PRIORITY);
filter.addAction(MessageReceiver.SET_ALARMCLOCK);
filter.addAction(PushManager.SET_ALARMCLOCK);
mContext.registerReceiver(mAlarmClockReceiver, filter);
}
@@ -323,7 +325,7 @@ public class CustomFragment extends BaseFragment implements CustomContact.Custom
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
Log.e(TAG, "onReceive: " + action);
if (MessageReceiver.SET_ALARMCLOCK.equals(action)) {
if (PushManager.SET_ALARMCLOCK.equals(action)) {
Handler.getMain().postDelayed(new Runnable() {
@Override
public void run() {

View File

@@ -0,0 +1,108 @@
package com.uiuios.aios.manager;
import android.annotation.SuppressLint;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.util.Log;
import com.tencent.mmkv.MMKV;
import com.uiuios.aios.activity.main.MainActivity;
import com.uiuios.aios.bean.DailyAppBean;
import com.uiuios.aios.config.CommonConfig;
import com.uiuios.aios.utils.IconUtils;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
public class AppStatusManager {
private static final String TAG = AppStatusManager.class.getSimpleName();
@SuppressLint("StaticFieldLeak")
private static AppStatusManager sInstance;
private Context mContext;
private MMKV mMMKV = MMKV.mmkvWithID(CommonConfig.MMKV_ID, MMKV.MULTI_PROCESS_MODE);
private Set<String> hidedAppSet;
public static final String APP_STATUS_MANAGER_KEY = "AppStatusManagerSet";
private static final Set<String> defaultHiedApp = new HashSet<String>() {{
this.add("om.android.fmradio");//收音机
this.add("com.android.mms");//信息
this.add("com.android.gallery3d");
this.add("com.android.documentsui");
this.add("com.android.calculator2");
this.add("com.android.calendar");
}};
private AppStatusManager(Context context) {
if (context == null) {
throw new RuntimeException("Context is NULL");
}
this.mContext = context;
Set<String> stringSet = mMMKV.decodeStringSet(APP_STATUS_MANAGER_KEY, defaultHiedApp);
this.hidedAppSet = stringSet;
}
public static void init(Context context) {
if (sInstance == null) {
Log.e(TAG, "init: ");
sInstance = new AppStatusManager(context);
}
}
public static AppStatusManager getInstance() {
if (sInstance == null) {
throw new IllegalStateException("You must be init AppStatusManager first");
}
return sInstance;
}
public Set<String> getHidedAppSet() {
return this.hidedAppSet;
}
public void addHidedApp(String pkg) {
this.hidedAppSet.add(pkg);
mMMKV.encode(APP_STATUS_MANAGER_KEY, hidedAppSet);
mContext.sendBroadcast(new Intent(MainActivity.ACTION_PACKAGE_HIDE));
}
public void removeHidedApp(String pkg) {
this.hidedAppSet.remove(pkg);
mMMKV.encode(APP_STATUS_MANAGER_KEY, hidedAppSet);
mContext.sendBroadcast(new Intent(MainActivity.ACTION_PACKAGE_HIDE));
}
public List<DailyAppBean> getPackageList() {
PackageManager pm = mContext.getPackageManager();
List<DailyAppBean> dailyAppBeanList = new ArrayList<>();
// 创建一个类别为CATEGORY_LAUNCHER的该包名的Intent
Intent resolveIntent = new Intent(Intent.ACTION_MAIN, null);
resolveIntent.addCategory(Intent.CATEGORY_LAUNCHER);
// 通过getPackageManager()的queryIntentActivities方法遍历,得到所有能打开的app的packageName
List<ResolveInfo> resolveinfoList = pm.queryIntentActivities(resolveIntent, 0);
for (ResolveInfo packageInfo : resolveinfoList) {
String pkg = packageInfo.activityInfo.packageName;
if (hidedAppSet.contains(pkg)) {
Log.e(TAG, "getPackageList: " + pkg);
DailyAppBean appSelectBean = new DailyAppBean(packageInfo.activityInfo.loadLabel(pm).toString(),
packageInfo.activityInfo.packageName,
packageInfo.activityInfo.name,
packageInfo.activityInfo.loadIcon(pm));
int i = IconUtils.appClassNameList.indexOf(pkg);
if (i != -1) {
String val = IconUtils.appIconList.get(i);
int resID = mContext.getResources().getIdentifier(val, "drawable", "com.uiui.aios");
if (resID != 0) {
appSelectBean.setIcon(mContext.getResources().getDrawable(resID));
}
}
dailyAppBeanList.add(appSelectBean);
}
}
return dailyAppBeanList;
}
}

View File

@@ -5,6 +5,7 @@ import android.content.Context;
import android.util.Log;
import com.tencent.mmkv.MMKV;
import com.uiuios.aios.config.CommonConfig;
import com.uiuios.aios.utils.TimeUtils;
public class ConnectManager {
@@ -30,7 +31,7 @@ public class ConnectManager {
@SuppressLint("StaticFieldLeak")
private static ConnectManager sInstance;
private Context mContext;
private MMKV mMMKV = MMKV.defaultMMKV();
private MMKV mMMKV = MMKV.mmkvWithID(CommonConfig.MMKV_ID, MMKV.MULTI_PROCESS_MODE);
private ConnectManager(Context context) {
if (context == null) {

View File

@@ -25,7 +25,7 @@ public class RemoteManager {
@SuppressLint("StaticFieldLeak")
private static RemoteManager sInstance;
private Context mContext;
private MMKV mMMKV = MMKV.defaultMMKV();
private MMKV mMMKV = MMKV.mmkvWithID(CommonConfig.MMKV_ID, MMKV.MULTI_PROCESS_MODE);
private CacheHelper mCacheHelper;
private IGetInfoInterface getInfoInterface;

View File

@@ -24,6 +24,7 @@ import com.uiuios.aios.bean.SnInfo;
import com.uiuios.aios.bean.SystemSettings;
import com.uiuios.aios.bean.UserAvatarInfo;
import com.uiuios.aios.bean.UserId;
import com.uiuios.aios.config.CommonConfig;
import com.uiuios.aios.disklrucache.CacheHelper;
import com.uiuios.aios.manager.ConnectManager;
import com.uiuios.aios.manager.ConnectMode;
@@ -81,7 +82,7 @@ public class NetInterfaceManager {
private Retrofit mRetrofit;
private OkHttpClient okHttpClient;
private MMKV mMMKV = MMKV.defaultMMKV();
private MMKV mMMKV = MMKV.mmkvWithID(CommonConfig.MMKV_ID, MMKV.MULTI_PROCESS_MODE);
private final ConcurrentHashMap<String, Long> requestIdsMap = new ConcurrentHashMap<>();
//超时时间

View File

@@ -0,0 +1,62 @@
package com.uiuios.aios.push;
import android.annotation.SuppressLint;
import android.content.ContentResolver;
import android.content.Context;
import android.content.Intent;
import com.tencent.mmkv.MMKV;
import com.uiuios.aios.config.CommonConfig;
import com.uiuios.aios.disklrucache.CacheHelper;
import com.uiuios.aios.utils.ToastUtil;
public class PushManager {
private static final String TAG = PushManager.class.getSimpleName();
public static final String SET_ALARMCLOCK = "zuoyeos.action.change.alarmclaock";
@SuppressLint("StaticFieldLeak")
private static PushManager sInstance;
private Context mContext;
private ContentResolver mResolver;
private CacheHelper mCacheHelper;
private MMKV mMMKV = MMKV.mmkvWithID(CommonConfig.MMKV_ID, MMKV.MULTI_PROCESS_MODE);
private PushManager(Context context) {
if (context == null) {
throw new RuntimeException("Context is NULL");
}
this.mContext = context;
this.mResolver = context.getContentResolver();
this.mCacheHelper = new CacheHelper(context);
}
public static void init(Context context) {
if (sInstance == null) {
sInstance = new PushManager(context);
}
}
public static PushManager getInstance() {
if (sInstance == null) {
throw new IllegalStateException("You must be init PushManager first");
}
return sInstance;
}
private static final String JIGUANG_ALARM_CLOCK = "57";
public void setPushContent(String title, String extras) {
switch (title) {
case JIGUANG_ALARM_CLOCK:
ToastUtil.betaShow("收到推送消息: 设置闹钟");
Intent intent = new Intent(SET_ALARMCLOCK);
mContext.sendBroadcast(intent);
break;
default:
}
}
}

View File

@@ -0,0 +1,99 @@
package com.uiuios.aios.push.alipush;
import android.content.Context;
import android.util.Log;
import com.alibaba.sdk.android.push.AliyunMessageIntentService;
import com.alibaba.sdk.android.push.notification.CPushMessage;
import java.util.Map;
/**
* Created by liyazhou on 17/8/22.
* 为避免推送广播被系统拦截的小概率事件,我们推荐用户通过IntentService处理消息互调,接入步骤:
* 1. 创建IntentService并继承AliyunMessageIntentService
* 2. 覆写相关方法,并在Manifest的注册该Service
* 3. 调用接口CloudPushService.setPushIntentService
* 详细用户可参考:https://help.aliyun.com/document_detail/30066.html#h2-2-messagereceiver-aliyunmessageintentservice
*/
public class AliMessageIntentService extends AliyunMessageIntentService {
private static final String TAG = AliyunMessageIntentService.class.getSimpleName();
/**
* 推送通知的回调方法
*
* @param context
* @param title
* @param summary
* @param extraMap
*/
@Override
protected void onNotification(Context context, String title, String summary, Map<String, String> extraMap) {
Log.i(TAG, "收到一条推送通知 " + title + ", summary:" + summary);
}
/**
* 推送消息的回调方法
*
* @param context
* @param cPushMessage
*/
@Override
protected void onMessage(Context context, CPushMessage cPushMessage) {
Log.i(TAG, "收到一条推送消息 " + cPushMessage.getTitle() + ", content:" + cPushMessage.getContent());
}
/**
* 从通知栏打开通知的扩展处理
*
* @param context
* @param title
* @param summary
* @param extraMap
*/
@Override
protected void onNotificationOpened(Context context, String title, String summary, String extraMap) {
Log.i(TAG, "onNotificationOpened " + " : " + title + " : " + summary + " : " + extraMap);
}
/**
* 无动作通知点击回调。当在后台或阿里云控制台指定的通知动作为无逻辑跳转时,通知点击回调为onNotificationClickedWithNoAction而不是onNotificationOpened
*
* @param context
* @param title
* @param summary
* @param extraMap
*/
@Override
protected void onNotificationClickedWithNoAction(Context context, String title, String summary, String extraMap) {
Log.i(TAG, "onNotificationClickedWithNoAction " + " : " + title + " : " + summary + " : " + extraMap);
}
/**
* 通知删除回调
*
* @param context
* @param messageId
*/
@Override
protected void onNotificationRemoved(Context context, String messageId) {
Log.i(TAG, "onNotificationRemoved " + messageId);
}
/**
* 应用处于前台时通知到达回调。注意:该方法仅对自定义样式通知有效,相关详情请参考https://help.aliyun.com/document_detail/30066.html#h3-3-4-basiccustompushnotification-api
*
* @param context
* @param title
* @param summary
* @param extraMap
* @param openType
* @param openActivity
* @param openUrl
*/
@Override
protected void onNotificationReceivedInApp(Context context, String title, String summary, Map<String, String> extraMap, int openType, String openActivity, String openUrl) {
Log.i(TAG, "onNotificationReceivedInApp " + " : " + title + " : " + summary + " " + extraMap + " : " + openType + " : " + openActivity + " : " + openUrl);
}
}

View File

@@ -0,0 +1,116 @@
package com.uiuios.aios.push.alipush;
import android.content.Context;
import android.util.Log;
import com.alibaba.sdk.android.push.MessageReceiver;
import com.alibaba.sdk.android.push.notification.CPushMessage;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import com.uiuios.aios.push.PushManager;
import java.util.Map;
/**
* @author: 正纬
* @since: 15/4/9
* @version: 1.1
* @feature: 用于接收推送的通知和消息
*/
public class AliyunMessageReceiver extends MessageReceiver {
// 消息接收部分的LOG_TAG
public static final String TAG = AliyunMessageReceiver.class.getSimpleName();
/**
* 推送通知的回调方法
*
* @param context
* @param title
* @param summary
* @param extraMap
*/
@Override
public void onNotification(Context context, String title, String summary, Map<String, String> extraMap) {
// TODO 处理推送通知
if (null != extraMap) {
for (Map.Entry<String, String> entry : extraMap.entrySet()) {
Log.i(TAG, "@Get diy param : Key=" + entry.getKey() + " , Value=" + entry.getValue());
}
} else {
Log.i(TAG, "@收到通知 && 自定义消息为空");
}
Log.i(TAG, "收到一条推送通知 " + title + ", summary:" + summary);
}
/**
* 应用处于前台时通知到达回调。注意:该方法仅对自定义样式通知有效,相关详情请参考https://help.aliyun.com/document_detail/30066.html?spm=5176.product30047.6.620.wjcC87#h3-3-4-basiccustompushnotification-api
*
* @param context
* @param title
* @param summary
* @param extraMap
* @param openType
* @param openActivity
* @param openUrl
*/
@Override
protected void onNotificationReceivedInApp(Context context, String title, String summary, Map<String, String> extraMap, int openType, String openActivity, String openUrl) {
Log.i(TAG, "onNotificationReceivedInApp " + " : " + title + " : " + summary + " " + extraMap + " : " + openType + " : " + openActivity + " : " + openUrl);
}
/**
* 推送消息的回调方法
*
* @param context
* @param cPushMessage
*/
@Override
public void onMessage(Context context, CPushMessage cPushMessage) {
Log.e(TAG, "收到一条推送消息 " + cPushMessage.getTitle() + ", content:" + cPushMessage.getContent());
String title = cPushMessage.getTitle();
String content = cPushMessage.getContent();
JsonObject extrasJson = JsonParser.parseString(content).getAsJsonObject();
String extras = "";
if (extrasJson.get("extras") != null) {
extras = extrasJson.get("extras").toString();
}
PushManager.getInstance().setPushContent(title, extras);
}
/**
* 从通知栏打开通知的扩展处理
*
* @param context
* @param title
* @param summary
* @param extraMap
*/
@Override
public void onNotificationOpened(Context context, String title, String summary, String extraMap) {
Log.i(TAG, "onNotificationOpened " + " : " + title + " : " + summary + " : " + extraMap);
}
/**
* 通知删除回调
*
* @param context
* @param messageId
*/
@Override
public void onNotificationRemoved(Context context, String messageId) {
Log.i(TAG, "onNotificationRemoved " + messageId);
}
/**
* 无动作通知点击回调。当在后台或阿里云控制台指定的通知动作为无逻辑跳转时,通知点击回调为onNotificationClickedWithNoAction而不是onNotificationOpened
*
* @param context
* @param title
* @param summary
* @param extraMap
*/
@Override
protected void onNotificationClickedWithNoAction(Context context, String title, String summary, String extraMap) {
Log.i(TAG, "onNotificationClickedWithNoAction " + " : " + title + " : " + summary + " : " + extraMap);
}
}

View File

@@ -1,4 +1,4 @@
package com.uiuios.aios.tpush;
package com.uiuios.aios.push.tpush;
/**
* Created by chacewang on 2019/7/5.

View File

@@ -1,4 +1,4 @@
package com.uiuios.aios.tpush;
package com.uiuios.aios.push.tpush;
import android.content.ContentResolver;
import android.content.Context;
@@ -16,8 +16,9 @@ import com.tencent.android.tpush.XGPushClickedResult;
import com.tencent.android.tpush.XGPushRegisterResult;
import com.tencent.android.tpush.XGPushShowedResult;
import com.tencent.android.tpush.XGPushTextMessage;
import com.uiuios.aios.tpush.common.NotificationService;
import com.uiuios.aios.tpush.po.XGNotification;
import com.uiuios.aios.push.PushManager;
import com.uiuios.aios.push.tpush.common.NotificationService;
import com.uiuios.aios.push.tpush.po.XGNotification;
import com.uiuios.aios.utils.ToastUtil;
import java.text.SimpleDateFormat;
@@ -30,8 +31,6 @@ public class MessageReceiver extends XGPushBaseReceiver {
public static final String TEST_ACTION = "com.qq.xgdemo.activity.TEST_ACTION";
public static final String LogTag = "xg.test";
public static final String SET_ALARMCLOCK = "zuoyeos.action.change.alarmclaock";
private Context mContext;
private ContentResolver mResolver;
private PackageManager mPackageManager;
@@ -288,9 +287,6 @@ public class MessageReceiver extends XGPushBaseReceiver {
// Toast.makeText(context, text, Toast.LENGTH_SHORT).show();
}
//闹钟
private static final String JIGUANG_ALARM_CLOCK = "57";
private void processCustomMessage(Context context, XGPushTextMessage message) {
if (context == null || message == null) {
return;
@@ -304,14 +300,6 @@ public class MessageReceiver extends XGPushBaseReceiver {
if (extrasJson.get("extras") != null) {
extras = extrasJson.get("extras").toString();
}
switch (title) {
case JIGUANG_ALARM_CLOCK:
ToastUtil.betaShow("收到推送消息: 设置闹钟");
Intent intent = new Intent(SET_ALARMCLOCK);
mContext.sendBroadcast(intent);
break;
default:
}
PushManager.getInstance().setPushContent(title, extras);
}
}

View File

@@ -1,4 +1,4 @@
package com.uiuios.aios.tpush.common;
package com.uiuios.aios.push.tpush.common;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;

View File

@@ -1,4 +1,4 @@
package com.uiuios.aios.tpush.common;
package com.uiuios.aios.push.tpush.common;
import android.content.ContentValues;
import android.content.Context;
@@ -6,7 +6,7 @@ import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import com.uiuios.aios.tpush.po.XGNotification;
import com.uiuios.aios.push.tpush.po.XGNotification;
import java.util.ArrayList;
import java.util.List;

View File

@@ -1,4 +1,4 @@
package com.uiuios.aios.tpush.po;
package com.uiuios.aios.push.tpush.po;
public class XGNotification {
private Integer id;

View File

@@ -6,6 +6,7 @@ import android.util.Log;
import com.tencent.mmkv.MMKV;
import com.trello.rxlifecycle4.android.ActivityEvent;
import com.uiuios.aios.bean.AlarmClockData;
import com.uiuios.aios.config.CommonConfig;
import com.uiuios.aios.network.NetInterfaceManager;
import java.util.List;
@@ -24,7 +25,7 @@ public class MainSPresenter implements MainSContact.Presenter {
private static final int OK = 200;
private MainSContact.MainSView mView;
private Context mContext;
MMKV mMMKV = MMKV.defaultMMKV();
MMKV mMMKV = MMKV.mmkvWithID(CommonConfig.MMKV_ID, MMKV.MULTI_PROCESS_MODE);
private BehaviorSubject<ActivityEvent> lifecycle;

View File

@@ -53,6 +53,8 @@ public class ApkUtils {
this.add("com.android.calendar");
this.add("com.android.uiuios");
this.add("com.uiui.os");
this.add("com.uiui.aios");
this.add("com.uiui.videoplayer");
// this.add("com.uiui.health");
this.add("com.tencent.android.qqdownloader");
// this.add("com.uiuios.appstore");
@@ -226,11 +228,17 @@ public class ApkUtils {
}
}
DesktopIcon dailyIcon = new DesktopIcon();
dailyIcon.setIcon(context.getDrawable(R.drawable.icon_daily_app));
dailyIcon.setLable("日常应用");
dailyIcon.setPackageName("aios.daily.app");
desktopIcons.add(0, dailyIcon);
DesktopIcon familyIcon = new DesktopIcon();
familyIcon.setIcon(context.getDrawable(R.drawable.icon_family_space));
familyIcon.setLable("家庭空间");
familyIcon.setPackageName("aios.family");
desktopIcons.add(0, familyIcon);
desktopIcons.add(1, familyIcon);
return desktopIcons;
}