diff --git a/app/build.gradle b/app/build.gradle
index adf276e..b8c1df0 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -16,8 +16,8 @@ android {
applicationId "com.uiuios.aios"
minSdkVersion 24
targetSdkVersion 29
- versionCode 17
- versionName "2.6"
+ versionCode 18
+ versionName "2.7"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
@@ -198,7 +198,10 @@ dependencies {
// implementation 'com.baidu.lbsyun:BaiduMapSDK_Location:9.1.8'
//MMKV
implementation 'com.tencent:mmkv-static:1.2.14'
- implementation 'com.tencent.tpns:tpns:1.3.7.0-release'
+ //腾讯移动推送 TPNS
+ implementation 'com.tencent.tpns:tpns:1.3.8.0-release'
+ //阿里云推送
+ implementation 'com.aliyun.ams:alicloud-android-push:3.8.0'
//状态栏透明
implementation 'com.gitee.zackratos:UltimateBarX:0.8.0'
//指示器
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 98386b1..e430edd 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -105,7 +105,12 @@
-
+
+
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -279,7 +314,7 @@
-
+
@@ -313,6 +348,15 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/java/com/uiuios/aios/AppInfo.java b/app/src/main/java/com/uiuios/aios/AppInfo.java
deleted file mode 100644
index eb10c2c..0000000
--- a/app/src/main/java/com/uiuios/aios/AppInfo.java
+++ /dev/null
@@ -1,9 +0,0 @@
-package com.uiuios.aios;
-
-import java.io.Serializable;
-
-public class AppInfo implements Serializable {
-
- private static final long serialVersionUID = -5488458740561098181L;
-
-}
diff --git a/app/src/main/java/com/uiuios/aios/activity/ControlActivity.java b/app/src/main/java/com/uiuios/aios/activity/ControlActivity.java
index 182ede7..f1b1983 100644
--- a/app/src/main/java/com/uiuios/aios/activity/ControlActivity.java
+++ b/app/src/main/java/com/uiuios/aios/activity/ControlActivity.java
@@ -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("未知");
diff --git a/app/src/main/java/com/uiuios/aios/activity/DailyAppActivity.java b/app/src/main/java/com/uiuios/aios/activity/DailyAppActivity.java
new file mode 100644
index 0000000..919ff8a
--- /dev/null
+++ b/app/src/main/java/com/uiuios/aios/activity/DailyAppActivity.java
@@ -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 appBeanList = AppStatusManager.getInstance().getPackageList();
+ mDailyAppAdapter.setDailyAppBeans(appBeanList);
+ tv_appsize.setText(String.format(getString(R.string.app_size), appBeanList.size()));
+ }
+}
diff --git a/app/src/main/java/com/uiuios/aios/activity/EmergencyActivity.java b/app/src/main/java/com/uiuios/aios/activity/EmergencyActivity.java
index cb3830d..42b71ed 100644
--- a/app/src/main/java/com/uiuios/aios/activity/EmergencyActivity.java
+++ b/app/src/main/java/com/uiuios/aios/activity/EmergencyActivity.java
@@ -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);
diff --git a/app/src/main/java/com/uiuios/aios/activity/alarm/AlarmClockActivity.java b/app/src/main/java/com/uiuios/aios/activity/alarm/AlarmClockActivity.java
index ebba38f..a94005d 100644
--- a/app/src/main/java/com/uiuios/aios/activity/alarm/AlarmClockActivity.java
+++ b/app/src/main/java/com/uiuios/aios/activity/alarm/AlarmClockActivity.java
@@ -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();
}
}
diff --git a/app/src/main/java/com/uiuios/aios/activity/contact/ContactPresenter.java b/app/src/main/java/com/uiuios/aios/activity/contact/ContactPresenter.java
index de35007..30e898c 100644
--- a/app/src/main/java/com/uiuios/aios/activity/contact/ContactPresenter.java
+++ b/app/src/main/java/com/uiuios/aios/activity/contact/ContactPresenter.java
@@ -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 lifecycle;
diff --git a/app/src/main/java/com/uiuios/aios/activity/main/MainActivity.java b/app/src/main/java/com/uiuios/aios/activity/main/MainActivity.java
index b594bb3..50a1ae7 100644
--- a/app/src/main/java/com/uiuios/aios/activity/main/MainActivity.java
+++ b/app/src/main/java/com/uiuios/aios/activity/main/MainActivity.java
@@ -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();
diff --git a/app/src/main/java/com/uiuios/aios/activity/weather/WeatherPresenter.java b/app/src/main/java/com/uiuios/aios/activity/weather/WeatherPresenter.java
index a921513..d8f3f88 100644
--- a/app/src/main/java/com/uiuios/aios/activity/weather/WeatherPresenter.java
+++ b/app/src/main/java/com/uiuios/aios/activity/weather/WeatherPresenter.java
@@ -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 lifecycle;
diff --git a/app/src/main/java/com/uiuios/aios/adapter/AppSelectedAdapter.java b/app/src/main/java/com/uiuios/aios/adapter/AppSelectedAdapter.java
index 11f16e1..c3ee060 100644
--- a/app/src/main/java/com/uiuios/aios/adapter/AppSelectedAdapter.java
+++ b/app/src/main/java/com/uiuios/aios/adapter/AppSelectedAdapter.java
@@ -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 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 appSelectBeanList) {
this.mAppSelectBeans = appSelectBeanList;
diff --git a/app/src/main/java/com/uiuios/aios/adapter/DailyAppAdapter.java b/app/src/main/java/com/uiuios/aios/adapter/DailyAppAdapter.java
new file mode 100644
index 0000000..65831af
--- /dev/null
+++ b/app/src/main/java/com/uiuios/aios/adapter/DailyAppAdapter.java
@@ -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 {
+ private static final String TAG = DailyAppAdapter.class.getSimpleName();
+
+ private Context mContext;
+ private List mDailyAppBeans;
+
+ public void setDailyAppBeans(List 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() {
+ @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);
+ }
+ }
+}
diff --git a/app/src/main/java/com/uiuios/aios/adapter/WeatherDayApdapter.java b/app/src/main/java/com/uiuios/aios/adapter/WeatherDayApdapter.java
index 23d8219..bf57ba7 100644
--- a/app/src/main/java/com/uiuios/aios/adapter/WeatherDayApdapter.java
+++ b/app/src/main/java/com/uiuios/aios/adapter/WeatherDayApdapter.java
@@ -70,14 +70,14 @@ public class WeatherDayApdapter extends RecyclerView.Adapter hidedAppSet;
+
+ public static final String APP_STATUS_MANAGER_KEY = "AppStatusManagerSet";
+ private static final Set defaultHiedApp = new HashSet() {{
+ 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 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 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 getPackageList() {
+ PackageManager pm = mContext.getPackageManager();
+ List dailyAppBeanList = new ArrayList<>();
+ // 创建一个类别为CATEGORY_LAUNCHER的该包名的Intent
+ Intent resolveIntent = new Intent(Intent.ACTION_MAIN, null);
+ resolveIntent.addCategory(Intent.CATEGORY_LAUNCHER);
+ // 通过getPackageManager()的queryIntentActivities方法遍历,得到所有能打开的app的packageName
+ List 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;
+ }
+}
diff --git a/app/src/main/java/com/uiuios/aios/manager/ConnectManager.java b/app/src/main/java/com/uiuios/aios/manager/ConnectManager.java
index ddddceb..a7e5ea9 100644
--- a/app/src/main/java/com/uiuios/aios/manager/ConnectManager.java
+++ b/app/src/main/java/com/uiuios/aios/manager/ConnectManager.java
@@ -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) {
diff --git a/app/src/main/java/com/uiuios/aios/manager/RemoteManager.java b/app/src/main/java/com/uiuios/aios/manager/RemoteManager.java
index fc7697f..4a0c7f8 100644
--- a/app/src/main/java/com/uiuios/aios/manager/RemoteManager.java
+++ b/app/src/main/java/com/uiuios/aios/manager/RemoteManager.java
@@ -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;
diff --git a/app/src/main/java/com/uiuios/aios/network/NetInterfaceManager.java b/app/src/main/java/com/uiuios/aios/network/NetInterfaceManager.java
index 6e53237..b60469e 100644
--- a/app/src/main/java/com/uiuios/aios/network/NetInterfaceManager.java
+++ b/app/src/main/java/com/uiuios/aios/network/NetInterfaceManager.java
@@ -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 requestIdsMap = new ConcurrentHashMap<>();
//超时时间
diff --git a/app/src/main/java/com/uiuios/aios/push/PushManager.java b/app/src/main/java/com/uiuios/aios/push/PushManager.java
new file mode 100644
index 0000000..effd612
--- /dev/null
+++ b/app/src/main/java/com/uiuios/aios/push/PushManager.java
@@ -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:
+ }
+ }
+
+
+}
diff --git a/app/src/main/java/com/uiuios/aios/push/alipush/AliMessageIntentService.java b/app/src/main/java/com/uiuios/aios/push/alipush/AliMessageIntentService.java
new file mode 100644
index 0000000..035c9db
--- /dev/null
+++ b/app/src/main/java/com/uiuios/aios/push/alipush/AliMessageIntentService.java
@@ -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 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 extraMap, int openType, String openActivity, String openUrl) {
+ Log.i(TAG, "onNotificationReceivedInApp : " + " : " + title + " : " + summary + " " + extraMap + " : " + openType + " : " + openActivity + " : " + openUrl);
+ }
+}
diff --git a/app/src/main/java/com/uiuios/aios/push/alipush/AliyunMessageReceiver.java b/app/src/main/java/com/uiuios/aios/push/alipush/AliyunMessageReceiver.java
new file mode 100644
index 0000000..42070eb
--- /dev/null
+++ b/app/src/main/java/com/uiuios/aios/push/alipush/AliyunMessageReceiver.java
@@ -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 extraMap) {
+ // TODO 处理推送通知
+ if (null != extraMap) {
+ for (Map.Entry 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 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);
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/uiuios/aios/tpush/Constants.java b/app/src/main/java/com/uiuios/aios/push/tpush/Constants.java
similarity index 93%
rename from app/src/main/java/com/uiuios/aios/tpush/Constants.java
rename to app/src/main/java/com/uiuios/aios/push/tpush/Constants.java
index 7f33c3e..fd57742 100644
--- a/app/src/main/java/com/uiuios/aios/tpush/Constants.java
+++ b/app/src/main/java/com/uiuios/aios/push/tpush/Constants.java
@@ -1,4 +1,4 @@
-package com.uiuios.aios.tpush;
+package com.uiuios.aios.push.tpush;
/**
* Created by chacewang on 2019/7/5.
diff --git a/app/src/main/java/com/uiuios/aios/tpush/MessageReceiver.java b/app/src/main/java/com/uiuios/aios/push/tpush/MessageReceiver.java
similarity index 94%
rename from app/src/main/java/com/uiuios/aios/tpush/MessageReceiver.java
rename to app/src/main/java/com/uiuios/aios/push/tpush/MessageReceiver.java
index 4cc2b96..a2d9dd7 100644
--- a/app/src/main/java/com/uiuios/aios/tpush/MessageReceiver.java
+++ b/app/src/main/java/com/uiuios/aios/push/tpush/MessageReceiver.java
@@ -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);
}
}
diff --git a/app/src/main/java/com/uiuios/aios/tpush/common/DBOpenHelper.java b/app/src/main/java/com/uiuios/aios/push/tpush/common/DBOpenHelper.java
similarity index 93%
rename from app/src/main/java/com/uiuios/aios/tpush/common/DBOpenHelper.java
rename to app/src/main/java/com/uiuios/aios/push/tpush/common/DBOpenHelper.java
index 6a0dca2..c068ab3 100644
--- a/app/src/main/java/com/uiuios/aios/tpush/common/DBOpenHelper.java
+++ b/app/src/main/java/com/uiuios/aios/push/tpush/common/DBOpenHelper.java
@@ -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;
diff --git a/app/src/main/java/com/uiuios/aios/tpush/common/NotificationService.java b/app/src/main/java/com/uiuios/aios/push/tpush/common/NotificationService.java
similarity index 97%
rename from app/src/main/java/com/uiuios/aios/tpush/common/NotificationService.java
rename to app/src/main/java/com/uiuios/aios/push/tpush/common/NotificationService.java
index 20faa41..952620a 100644
--- a/app/src/main/java/com/uiuios/aios/tpush/common/NotificationService.java
+++ b/app/src/main/java/com/uiuios/aios/push/tpush/common/NotificationService.java
@@ -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;
diff --git a/app/src/main/java/com/uiuios/aios/tpush/po/XGNotification.java b/app/src/main/java/com/uiuios/aios/push/tpush/po/XGNotification.java
similarity index 97%
rename from app/src/main/java/com/uiuios/aios/tpush/po/XGNotification.java
rename to app/src/main/java/com/uiuios/aios/push/tpush/po/XGNotification.java
index da0de05..fcccd1a 100644
--- a/app/src/main/java/com/uiuios/aios/tpush/po/XGNotification.java
+++ b/app/src/main/java/com/uiuios/aios/push/tpush/po/XGNotification.java
@@ -1,4 +1,4 @@
-package com.uiuios.aios.tpush.po;
+package com.uiuios.aios.push.tpush.po;
public class XGNotification {
private Integer id;
diff --git a/app/src/main/java/com/uiuios/aios/service/main/MainSPresenter.java b/app/src/main/java/com/uiuios/aios/service/main/MainSPresenter.java
index df7020c..3850d65 100644
--- a/app/src/main/java/com/uiuios/aios/service/main/MainSPresenter.java
+++ b/app/src/main/java/com/uiuios/aios/service/main/MainSPresenter.java
@@ -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 lifecycle;
diff --git a/app/src/main/java/com/uiuios/aios/utils/ApkUtils.java b/app/src/main/java/com/uiuios/aios/utils/ApkUtils.java
index d7d0e4e..009b38c 100644
--- a/app/src/main/java/com/uiuios/aios/utils/ApkUtils.java
+++ b/app/src/main/java/com/uiuios/aios/utils/ApkUtils.java
@@ -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;
}
diff --git a/app/src/main/res/drawable-hdpi/background_weather_rain1.png b/app/src/main/res/drawable-hdpi/background_weather_rain1.png
new file mode 100644
index 0000000..72d7119
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/background_weather_rain1.png differ
diff --git a/app/src/main/res/drawable-hdpi/background_weather_sun1.png b/app/src/main/res/drawable-hdpi/background_weather_sun1.png
new file mode 100644
index 0000000..1f3771c
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/background_weather_sun1.png differ
diff --git a/app/src/main/res/drawable-hdpi/background_weather_sunny1.png b/app/src/main/res/drawable-hdpi/background_weather_sunny1.png
new file mode 100644
index 0000000..da69a33
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/background_weather_sunny1.png differ
diff --git a/app/src/main/res/drawable-hdpi/exit.png b/app/src/main/res/drawable-hdpi/exit.png
new file mode 100644
index 0000000..8ac4207
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/exit.png differ
diff --git a/app/src/main/res/drawable-hdpi/icon_daily_app.png b/app/src/main/res/drawable-hdpi/icon_daily_app.png
new file mode 100644
index 0000000..b3b71c1
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/icon_daily_app.png differ
diff --git a/app/src/main/res/drawable-hdpi/icon_family_space.png b/app/src/main/res/drawable-hdpi/icon_family_space.png
index 56b0dfe..999ee77 100644
Binary files a/app/src/main/res/drawable-hdpi/icon_family_space.png and b/app/src/main/res/drawable-hdpi/icon_family_space.png differ
diff --git a/app/src/main/res/drawable/background_weather_rain.xml b/app/src/main/res/drawable/background_weather_rain.xml
index 357afef..e8f3c68 100644
--- a/app/src/main/res/drawable/background_weather_rain.xml
+++ b/app/src/main/res/drawable/background_weather_rain.xml
@@ -1,20 +1,17 @@
-
+
-
+
+ android:bottomRightRadius="16dp"
+ android:topLeftRadius="16dp"
+ android:topRightRadius="16dp" />
+ android:top="4dp" />
\ No newline at end of file
diff --git a/app/src/main/res/drawable/background_weather_sun.xml b/app/src/main/res/drawable/background_weather_sun.xml
index 8ff1fb3..e6c1cc4 100644
--- a/app/src/main/res/drawable/background_weather_sun.xml
+++ b/app/src/main/res/drawable/background_weather_sun.xml
@@ -1,20 +1,17 @@
-
+
-
+
+ android:bottomRightRadius="16dp"
+ android:topLeftRadius="16dp"
+ android:topRightRadius="16dp" />
+ android:top="4dp" />
\ No newline at end of file
diff --git a/app/src/main/res/drawable/background_weather_sunny.xml b/app/src/main/res/drawable/background_weather_sunny.xml
index f7bd9b8..167dd64 100644
--- a/app/src/main/res/drawable/background_weather_sunny.xml
+++ b/app/src/main/res/drawable/background_weather_sunny.xml
@@ -1,20 +1,17 @@
-
+
-
+
+ android:bottomRightRadius="16dp"
+ android:topLeftRadius="16dp"
+ android:topRightRadius="16dp" />
+ android:top="4dp" />
\ No newline at end of file
diff --git a/app/src/main/res/layout-land/activity_dailyapp.xml b/app/src/main/res/layout-land/activity_dailyapp.xml
new file mode 100644
index 0000000..0965df6
--- /dev/null
+++ b/app/src/main/res/layout-land/activity_dailyapp.xml
@@ -0,0 +1,63 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout-land/activity_weather.xml b/app/src/main/res/layout-land/activity_weather.xml
index b6cf942..255b9ea 100644
--- a/app/src/main/res/layout-land/activity_weather.xml
+++ b/app/src/main/res/layout-land/activity_weather.xml
@@ -7,32 +7,33 @@
tools:context=".activity.weather.WeatherActivity">
@@ -43,7 +44,7 @@
app:layout_constraintBottom_toTopOf="@+id/constraintLayout2"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
- app:layout_constraintTop_toBottomOf="@+id/constraintLayout3" />
+ app:layout_constraintTop_toBottomOf="@+id/constraintLayout" />
-
-
+ android:textSize="@dimen/sp_13"
+ app:layout_constraintBottom_toBottomOf="@+id/imageView"
+ app:layout_constraintStart_toEndOf="@+id/imageView"
+ app:layout_constraintTop_toTopOf="@+id/imageView" />
\ No newline at end of file
diff --git a/app/src/main/res/layout-land/fragment_custom.xml b/app/src/main/res/layout-land/fragment_custom.xml
index 59f68e9..ab47585 100644
--- a/app/src/main/res/layout-land/fragment_custom.xml
+++ b/app/src/main/res/layout-land/fragment_custom.xml
@@ -141,7 +141,6 @@
android:adjustViewBounds="true"
android:scaleType="centerCrop"
android:src="@drawable/home_settings_icon"
- app:is_circle="true"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/textView11"
app:layout_constraintTop_toTopOf="parent" />
diff --git a/app/src/main/res/layout-land/item_contact.xml b/app/src/main/res/layout-land/item_contact.xml
deleted file mode 100644
index 51baa0d..0000000
--- a/app/src/main/res/layout-land/item_contact.xml
+++ /dev/null
@@ -1,60 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app/src/main/res/layout-land/item_weather.xml b/app/src/main/res/layout-land/item_weather.xml
index db8cef0..9e32b1c 100644
--- a/app/src/main/res/layout-land/item_weather.xml
+++ b/app/src/main/res/layout-land/item_weather.xml
@@ -6,8 +6,9 @@
android:layout_height="match_parent">
+ android:src="@drawable/background_weather_sun1"
+ app:layout_constraintBottom_toBottomOf="@+id/tv_weather"
+ app:layout_constraintTop_toTopOf="parent" />
+ app:layout_constraintHorizontal_bias="0.5"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toTopOf="parent"
+ app:layout_constraintVertical_bias="0.168" />
+
+
-
+
-
+
+
-
\ No newline at end of file
diff --git a/app/src/main/res/layout-port/activity_dailyapp.xml b/app/src/main/res/layout-port/activity_dailyapp.xml
new file mode 100644
index 0000000..ef61774
--- /dev/null
+++ b/app/src/main/res/layout-port/activity_dailyapp.xml
@@ -0,0 +1,63 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout-port/activity_weather.xml b/app/src/main/res/layout-port/activity_weather.xml
index 2cc5e4a..255b9ea 100644
--- a/app/src/main/res/layout-port/activity_weather.xml
+++ b/app/src/main/res/layout-port/activity_weather.xml
@@ -7,31 +7,33 @@
tools:context=".activity.weather.WeatherActivity">
+ android:layout_height="@dimen/dp_32"
+ app:layout_constraintTop_toTopOf="parent">
@@ -42,7 +44,7 @@
app:layout_constraintBottom_toTopOf="@+id/constraintLayout2"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
- app:layout_constraintTop_toBottomOf="@+id/constraintLayout3" />
+ app:layout_constraintTop_toBottomOf="@+id/constraintLayout" />
-
-
+ android:textSize="@dimen/sp_13"
+ app:layout_constraintBottom_toBottomOf="@+id/imageView"
+ app:layout_constraintStart_toEndOf="@+id/imageView"
+ app:layout_constraintTop_toTopOf="@+id/imageView" />
\ No newline at end of file
diff --git a/app/src/main/res/layout-port/fragment_custom.xml b/app/src/main/res/layout-port/fragment_custom.xml
index 2f311df..10bc752 100644
--- a/app/src/main/res/layout-port/fragment_custom.xml
+++ b/app/src/main/res/layout-port/fragment_custom.xml
@@ -744,7 +744,7 @@
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_16"
android:text="AI问诊"
- android:textColor="@color/white"
+ android:textColor="@color/title_gray"
android:textSize="@dimen/sp_17"
android:textStyle="bold"
app:layout_constraintEnd_toEndOf="parent"
diff --git a/app/src/main/res/layout-port/item_app.xml b/app/src/main/res/layout-port/item_app.xml
deleted file mode 100644
index c1faa54..0000000
--- a/app/src/main/res/layout-port/item_app.xml
+++ /dev/null
@@ -1,62 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app/src/main/res/layout/custom_dialog.xml b/app/src/main/res/layout/dialog_custom.xml
similarity index 100%
rename from app/src/main/res/layout/custom_dialog.xml
rename to app/src/main/res/layout/dialog_custom.xml
diff --git a/app/src/main/res/layout/dialog_daily_app.xml b/app/src/main/res/layout/dialog_daily_app.xml
new file mode 100644
index 0000000..55708c3
--- /dev/null
+++ b/app/src/main/res/layout/dialog_daily_app.xml
@@ -0,0 +1,127 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/password_dialog.xml b/app/src/main/res/layout/dialog_password.xml
similarity index 100%
rename from app/src/main/res/layout/password_dialog.xml
rename to app/src/main/res/layout/dialog_password.xml
diff --git a/app/src/main/res/layout/single_dialog.xml b/app/src/main/res/layout/dialog_single.xml
similarity index 100%
rename from app/src/main/res/layout/single_dialog.xml
rename to app/src/main/res/layout/dialog_single.xml
diff --git a/app/src/main/res/layout-land/item_app.xml b/app/src/main/res/layout/item_app.xml
similarity index 80%
rename from app/src/main/res/layout-land/item_app.xml
rename to app/src/main/res/layout/item_app.xml
index c1faa54..b7df104 100644
--- a/app/src/main/res/layout-land/item_app.xml
+++ b/app/src/main/res/layout/item_app.xml
@@ -17,8 +17,8 @@
+ tools:src="@mipmap/ic_launcher" />
-
\ No newline at end of file
diff --git a/app/src/main/res/layout-port/item_contact.xml b/app/src/main/res/layout/item_contact.xml
similarity index 56%
rename from app/src/main/res/layout-port/item_contact.xml
rename to app/src/main/res/layout/item_contact.xml
index d16f2fe..3ad474e 100644
--- a/app/src/main/res/layout-port/item_contact.xml
+++ b/app/src/main/res/layout/item_contact.xml
@@ -1,6 +1,7 @@
@@ -29,32 +30,38 @@
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.5" />
-
+ app:layout_constraintTop_toTopOf="parent">
-
+
+
+
-
\ No newline at end of file
diff --git a/app/src/main/res/layout/item_daily_app.xml b/app/src/main/res/layout/item_daily_app.xml
new file mode 100644
index 0000000..e513e9b
--- /dev/null
+++ b/app/src/main/res/layout/item_daily_app.xml
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml
index 2a0b592..e6de816 100644
--- a/app/src/main/res/values/colors.xml
+++ b/app/src/main/res/values/colors.xml
@@ -41,4 +41,6 @@
#00d56b
#a0a0a0
+ #323a4c
+
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index c989c5c..e48ae2b 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -1,6 +1,6 @@
AIOS系统
-
- Hello blank secondFragment
+ %d款应用
+
diff --git a/build.gradle b/build.gradle
index af488a4..b5ffed2 100644
--- a/build.gradle
+++ b/build.gradle
@@ -8,6 +8,7 @@ buildscript {
maven { url "https://jitpack.io" }
maven { url 'http://developer.huawei.com/repo/' }
maven { url 'http://maven.aliyun.com/nexus/content/repositories/jcenter' }
+ maven { url 'http://maven.aliyun.com/nexus/content/repositories/releases/' }
}
dependencies {
classpath 'com.android.tools.build:gradle:3.6.4'
@@ -25,6 +26,7 @@ allprojects {
maven { url "https://jitpack.io" }
maven { url 'http://developer.huawei.com/repo/' }
maven { url 'http://maven.aliyun.com/nexus/content/repositories/jcenter' }
+ maven { url 'http://maven.aliyun.com/nexus/content/repositories/releases/' }
}
gradle.projectsEvaluated {
tasks.withType(JavaCompile) {